{"ref":"artifact:sap-samples-btp-ai-bp-content-filtering-cap","page":"/artifacts/sap-samples-btp-ai-bp-content-filtering-cap","json":"/artifacts/sap-samples-btp-ai-bp-content-filtering-cap.json","generated":"2026-10-30","drafted_with_ai":true,"entity":{"id":"sap-samples-btp-ai-bp-content-filtering-cap","name":"SAP BTP AI Best Practice Demo - Content Filtering - CAP","artifact_type":"sample","ecosystem":"cap","serves_ecosystems":["btp"],"flavors":[{"key":"node","source":{"url":"https://raw.githubusercontent.com/SAP-samples/sap-btp-ai-best-practices/main/best-practices/generative-ai/content-filtering/cap/backend-sample/README.md","title":"SAP-samples/sap-btp-ai-best-practices — content-filtering/cap/backend-sample README, prerequisites","checked":"2026-10-19","quote":"Node.js LTS version"}}],"use_as":"reference","domain":"ai-and-agents","origin_ring":"sap-official","description":{"one_line":"A CAP backend-sample and fullstack-sample that call [SAP AI Core](artifact:btp-ai-core) with content filtering switched on and off, to compare the filtered and unfiltered response.","short":"CAP samples comparing SAP AI Core responses with content filtering","what_it_solves":"`chatWithSupport` takes a `filterInput` flag and `generateParaphrase` takes a `filterOutput` flag, both resolved through the SAP Cloud SDK for AI; the fullstack-sample adds a UI5 app under app/ask-agent plus its own approuter, and its README screenshots the filtered and unfiltered response for both actions. Its own README describes content filtering as evaluating and selecting input data so low-quality or irrelevant text does not reach the model, calling this out as especially relevant to real-time or sensitive use. Both bind to a [SAP AI Core](artifact:btp-ai-core) service instance with `cds bind`.","when_not_to_use":"Every CDS service in both samples is marked `@requires: 'any'` and left publicly accessible, which the README says simplifies the testing and deployment process, and it asks for proper authentication mechanisms to be applied in their place."},"links":{"repo":"https://github.com/SAP-samples/sap-btp-ai-best-practices/tree/main/best-practices/generative-ai/content-filtering/cap"},"type_properties":{"form":{"value":"reference-application","sources":[{"url":"https://raw.githubusercontent.com/SAP-samples/sap-btp-ai-best-practices/main/best-practices/generative-ai/content-filtering/cap/backend-sample/README.md","title":"SAP-samples/sap-btp-ai-best-practices — content-filtering/cap/backend-sample README","checked":"2026-10-19","quote":"This project demonstrates best practices for using content filtering with generative AI models using the SAP AI SDK."}]}},"identity":{"license":"Apache-2.0"},"source_available":true,"compat":{"runtimes":["node"]},"demonstrates":["capability:content-filtering"],"requires":[{"ref":"artifact:btp-ai-core","for":"The service instance the samples bind to at runtime for the filtered and unfiltered chat and paraphrase calls.","sources":[{"url":"https://raw.githubusercontent.com/SAP-samples/sap-btp-ai-best-practices/main/best-practices/generative-ai/content-filtering/cap/backend-sample/README.md","title":"SAP-samples/sap-btp-ai-best-practices — content-filtering/cap/backend-sample README","checked":"2026-10-19","quote":"Access to SAP AI Core service"}]}],"connects":[{"ref":"artifact:btp-ai-core","kind":"data","direction":"outbound","for":"The prompt each action sends to the model and the response it logs, filtered on the way in or on the way out.","sources":[{"url":"https://raw.githubusercontent.com/SAP-samples/sap-btp-ai-best-practices/main/best-practices/generative-ai/content-filtering/cap/backend-sample/README.md","title":"SAP-samples/sap-btp-ai-best-practices — content-filtering/cap/backend-sample README, configuration","checked":"2026-10-19","quote":"The application requires proper configuration to connect to the SAP AI Core service. This is handled through CDS bindings in both local and remote deployments."},{"url":"https://raw.githubusercontent.com/SAP-samples/sap-btp-ai-best-practices/main/best-practices/generative-ai/content-filtering/cap/backend-sample/README.md","title":"SAP-samples/sap-btp-ai-best-practices — content-filtering/cap/backend-sample README, usage examples","checked":"2026-10-19","quote":"The application will serve the `/chatWithSupport` (filter input) and `/generateParaphrase` (filter output) APIs, which uses content filtering, then sends a prompt to the AI model and logs the response."}]}],"interfaces":[{"kind":"api","protocol":"odata-v4","direction":"in","for":"`chatWithSupport`, which filters the input, and `generateParaphrase`, which filters the output; both are posted to with the text and the flag.","sources":[{"url":"https://raw.githubusercontent.com/SAP-samples/sap-btp-ai-best-practices/main/best-practices/generative-ai/content-filtering/cap/backend-sample/README.md","title":"SAP-samples/sap-btp-ai-best-practices — content-filtering/cap/backend-sample README, usage examples","checked":"2026-10-19","quote":"The application will serve the `/chatWithSupport` (filter input) and `/generateParaphrase` (filter output) APIs"},{"url":"https://raw.githubusercontent.com/SAP-samples/sap-btp-ai-best-practices/main/best-practices/generative-ai/content-filtering/cap/backend-sample/README.md","title":"SAP-samples/sap-btp-ai-best-practices — content-filtering/cap/backend-sample README, usage examples","checked":"2026-10-19","quote":"--url http://$SAMPLE_CAP_HOST$/odata/v4/orchestration/chatWithSupport"}]}],"maintainers":["actor:sap-samples"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-14"},"contributors":["actor:luismarques-io"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"15 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"214 test files"},{"label":"Docs","tier":"fair","evidence":"README 1 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":70,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-28","npm":"not published under this name","stars":70,"forks":59,"open_issues":8,"archived":false,"pushed_at":"2026-10-27","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2025-03-07T14:29:58Z","open_prs":6,"tree_truncated":false,"test_files":214,"workflows":0,"other_ci":false,"readme_bytes":1175,"docs_files":0,"changelog":false,"license_file":true,"dts_files":2,"first_commit":"2025-05-27","last_commit":"2025-05-27","commits":1,"contributors":15,"readme_path":"best-practices/generative-ai/content-filtering/cap/README.md","readme_sha":"a845696e52152bc6c0b22f408fee8d20479d8c8e","repo_read":"2026-10-28"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:luismarques-io","name":"Luís Marques","json":"/actors/luismarques-io.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}