Prompt Registry
The Prompt Registry API allows you to create, manage, and retrieve prompt and orchestration config templates for use in SAP AI Core when working with Generative AI Hub models.
See SAP Help for the difference between imperative and declarative prompt templates.
Prompt Template Management
Initialize Client
from gen_ai_hub.proxy import get_proxy_client
from gen_ai_hub.prompt_registry import PromptTemplateClient
proxy_client = get_proxy_client(proxy_version="gen-ai-hub")
prompt_registry_client = PromptTemplateClient(proxy_client=proxy_client)
Create a Prompt Template
from gen_ai_hub.prompt_registry import PromptTemplateSpec, PromptTemplate
prompt_template_spec = PromptTemplateSpec(
template=[PromptTemplate(role='system', content='You are a helpful assistant.')]
)
template_id = prompt_registry_client.create_prompt_template(
scenario='MyScenario',
name='prompt_template_name',
version='1.0.0',
prompt_template_spec=prompt_template_spec
).id
print(f"Created Prompt Template with ID: {template_id}")
Retrieve a Prompt Template
response = prompt_registry_client.get_prompt_template_by_id(template_id)
print(response.spec.template)
Modify a Prompt Template
prompt_template_spec = PromptTemplateSpec(
template=[PromptTemplate(role='system', content='You are a helpful assistant for {{ ?topic }}.')]
)
response = prompt_registry_client.create_prompt_template(
scenario='MyScenario',
name='prompt_template_name',
version='1.0.0',
prompt_template_spec=prompt_template_spec
)
input_template_id = response.id
print(response.message)
Prompt Template History
response = prompt_registry_client.get_prompt_template_history(
scenario='MyScenario', name='prompt_template_name', version='1.0.0'
)
print(response.json())
Fill a Prompt Template
response = prompt_registry_client.fill_prompt_template_by_id(
template_id=input_template_id, input_params={"topic": "chemistry"}
)
print(response.parsed_prompt)
Orchestration Config Management
Initialize Client
from gen_ai_hub.proxy import get_proxy_client
from gen_ai_hub.prompt_registry import OrchestrationConfigClient
proxy_client = get_proxy_client(proxy_version="gen-ai-hub")
prompt_registry_client = OrchestrationConfigClient(proxy_client=proxy_client)
Create an Orchestration Config
from gen_ai_hub.orchestration_v2 import (
OrchestrationConfig, ModuleConfig, LLMModelDetails, UserMessage, Template, PromptTemplatingModuleConfig
)
config_spec = OrchestrationConfig(
modules=ModuleConfig(
prompt_templating=PromptTemplatingModuleConfig(
prompt=Template(template=[UserMessage(content="Hello, World!")]),
model=LLMModelDetails(name="gpt-4o-mini")
)
)
)
template_id = prompt_registry_client.create_orchestration_config(
scenario='MyScenario',
name='prompt_template_name',
version='1.0.0',
spec=config_spec
).id
print(f"Created Orchestration Config Template with ID: {template_id}")
Retrieve an Orchestration Config
response = prompt_registry_client.get_orchestration_config_by_id(template_id)
print(response.spec)
By scenario, name, and version:
response = prompt_registry_client.get_orchestration_configs(
scenario='MyScenario', name='prompt_template_name', version='1.0.0'
)
print(response.resources)
Export an Orchestration Config
response = prompt_registry_client.export_orchestration_config(config_id=template_id)
print(response)