Skip to main content

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)