Appearance
Integrations API
Manage custom integration code for your prompts.
Endpoints
Create Integration
POST /v1/prompts/{prompt_name}/integrations
Create a new integration for a prompt.
Request:
json
{
"language": "python",
"code": "def pre_process(input_variables):\n return input_variables\n\ndef post_process(llm_output, context):\n return {'output': llm_output}"
}Response:
json
{
"data": {
"id": "integration_abc123",
"prompt_name": "customer-classifier",
"language": "python",
"version": 1,
"created_at": "2025-01-15T10:00:00Z"
}
}Get Integration
GET /v1/prompts/{prompt_name}/integrations
Get the current integration for a prompt.
Response:
json
{
"data": {
"id": "integration_abc123",
"prompt_name": "customer-classifier",
"language": "python",
"code": "def pre_process(input_variables):\n return input_variables",
"version": 1,
"created_at": "2025-01-15T10:00:00Z"
}
}Update Integration
PATCH /v1/prompts/{prompt_name}/integrations
Update integration code (creates new version).
Request:
json
{
"code": "def pre_process(input_variables):\n # Updated code\n return input_variables"
}Response:
json
{
"data": {
"version": 2,
"updated_at": "2025-01-15T11:00:00Z"
}
}Delete Integration
DELETE /v1/prompts/{prompt_name}/integrations
Delete integration code.
Response:
json
{
"data": {
"deleted": true
}
}Test Integration
POST /v1/prompts/{prompt_name}/integrations/test
Test integration code without executing the full prompt.
Request:
json
{
"input_variables": {
"message": "Test message"
},
"mock_llm_output": "Test LLM response"
}Response:
json
{
"data": {
"pre_process_output": {
"message": "Test message",
"cleaned": true
},
"post_process_output": {
"parsed": "Test LLM response",
"success": true
},
"execution_time_ms": 45,
"errors": []
}
}Upload Dependencies
POST /v1/prompts/{prompt_name}/integrations/dependencies
Upload custom dependencies for integration code.
Request (multipart/form-data):
bash
curl -X POST https://mandatum-api.gavelinivar.com/api/v1/prompts/classifier/integrations/dependencies \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@requirements.txt"Response:
json
{
"data": {
"filename": "requirements.txt",
"packages": ["beautifulsoup4==4.12.2", "lxml==4.9.3"],
"uploaded_at": "2025-01-15T10:00:00Z"
}
}Examples
Python SDK
python
from mandatum import Mandatum
client = Mandatum(api_key="your-api-key")
# Create integration
integration_code = """
def pre_process(input_variables):
message = input_variables.get('message', '').strip()
return {'message': message}
def post_process(llm_output, context):
import json
try:
result = json.loads(llm_output)
return {'success': True, 'data': result}
except json.JSONDecodeError:
return {'success': False, 'raw': llm_output}
"""
integration = client.integrations.create(
prompt_name="classifier",
language="python",
code=integration_code
)
# Test integration
test_result = client.integrations.test(
prompt_name="classifier",
input_variables={"message": "test"},
mock_llm_output='{"category": "billing"}'
)
print(test_result)
# Upload dependencies
with open('requirements.txt', 'rb') as f:
client.integrations.upload_dependencies(
prompt_name="classifier",
dependencies_file=f
)TypeScript SDK
Coming Soon
A TypeScript/JavaScript SDK is in development. For now, use the REST API directly.