mirror of
https://github.com/danielmiessler/Fabric.git
synced 2026-02-04 19:15:06 -05:00
### CHANGES - Introduce `cmd` directory for all main application binaries. - Move all Go packages into the `internal` directory. - Rename the `restapi` package to `server` for clarity. - Consolidate patterns and strategies into a new `data` directory. - Group all auxiliary scripts into a new `scripts` directory. - Move all documentation and images into a `docs` directory. - Update all Go import paths to reflect the new structure. - Adjust CI/CD workflows and build commands for new layout.
2.5 KiB
2.5 KiB
REST API Pattern Variables Example
This example demonstrates how to use pattern variables in REST API calls to the /chat endpoint.
Example: Using the translate pattern with variables
Request
{
"prompts": [
{
"userInput": "Hello my name is Kayvan",
"patternName": "translate",
"model": "gpt-4o",
"vendor": "openai",
"contextName": "",
"strategyName": "",
"variables": {
"lang_code": "fr"
}
}
],
"language": "en",
"temperature": 0.7,
"topP": 0.9,
"frequencyPenalty": 0.0,
"presencePenalty": 0.0
}
Pattern Content
The translate pattern contains:
You are an expert translator... translate them as accurately and perfectly as possible into the language specified by its language code {{lang_code}}...
...
- Translate the document as accurately as possible keeping a 1:1 copy of the original text translated to {{lang_code}}.
{{input}}
How it works
- The pattern is loaded from
patterns/translate/system.md - The
{{lang_code}}variable is replaced with"fr"from the variables map - The
{{input}}placeholder is replaced with"Hello my name is Kayvan" - The resulting processed pattern is sent to the AI model
Expected Result
The AI would receive a prompt asking it to translate "Hello my name is Kayvan" to French (fr), and would respond with something like "Bonjour, je m'appelle Kayvan".
Testing with curl
curl -X POST http://localhost:8080/api/chat \
-H "Content-Type: application/json" \
-d '{
"prompts": [
{
"userInput": "Hello my name is Kayvan",
"patternName": "translate",
"model": "gpt-4o",
"vendor": "openai",
"variables": {
"lang_code": "fr"
}
}
],
"temperature": 0.7
}'
Multiple Variables Example
For patterns that use multiple variables:
{
"prompts": [
{
"userInput": "Analyze this business model",
"patternName": "custom_analysis",
"model": "gpt-4o",
"variables": {
"role": "expert consultant",
"experience": "15",
"focus_areas": "revenue, scalability, market fit",
"output_format": "bullet points"
}
}
]
}
Implementation Details
- Variables are passed in the
variablesfield as a key-value map - Variables are processed using Go's template system
- The
{{input}}variable is automatically handled and should not be included in the variables map - Variables support the same features as CLI variables (plugins, extensions, etc.)