{"ref":"artifact:ysichov-sap-easy-ai","page":"/artifacts/ysichov-sap-easy-ai","json":"/artifacts/ysichov-sap-easy-ai.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"ysichov-sap-easy-ai","name":"SAP-easy-AI","artifact_type":"sample","ecosystem":"abap","use_as":"reference","domain":"ai-and-agents","origin_ring":"independent","description":{"one_line":"An ABAP report that sends a prompt to a locally running LLM in LM Studio through a destination created in transaction SM59, shown with gpt-oss-20b and Gemma 3 12B.","short":"ABAP report sending a prompt to a local LLM via an SM59 destination","what_it_solves":"A destination called Z_LM, created in transaction SM59 with LM Studio's host and port, the path prefix `/v1/chat/completions` and SSL inactive, points the SAP system at a local LM Studio server, and the report Z_EASY_AI sends it a prompt. The README shows it first with OpenAI's gpt-oss-20b and then with Google Gemma 3 12B, both run in LM Studio, and adds that the selection screen can be used for the AI configuration. It also says this example is the version before 17 May 2026 and that the project is now a Claude API usage concept."},"links":{"repo":"https://github.com/ysichov/SAP-easy-AI"},"identity":{"license":"MIT"},"source_available":true,"demonstrates":["capability:llm-integration"],"maintainers":["actor:ysichov"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-14"},"contributors":["actor:ysichov"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-07, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"docs/ with 1 page, README 2 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":9,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","npm":"not published under this name","stars":9,"forks":1,"open_issues":0,"archived":false,"pushed_at":"2026-07-02","license_spdx":"MIT","org_owned":false,"default_branch":"main","created_at":"2025-08-09T17:31:00Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":1638,"docs_files":1,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2025-08-09","last_commit":"2026-07-02","commits":53,"contributors":1,"readme_path":"README.md","readme_sha":"0b9ceac2c9ede3165fd9dd6474ca76e6c8b3102e","repo_read":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:ysichov","name":"Yurii Sychov","json":"/actors/ysichov.json"}],"contributors":[{"ref":"actor:ysichov","name":"Yurii Sychov","json":"/actors/ysichov.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}