Umami是一个功能强大的分析服务框架,支持通过自定义提示(Prompts)进行灵活扩展。本指南将详细介绍如何在src/analytics_service/server.py中实现和管理这些提示,帮助你灵活扩展Umami分析服务的功能,满足不同业务需求。
Umami分析服务提示系统允许用户通过自定义提示来灵活扩展功能。你可以在src/analytics_service/server.py文件中进行提示的注册、逻辑实现等操作。
文档未提及安装相关内容,故跳过此章节。
在list_prompts()函数中注册新的提示:
@app.list_prompts()
async def list_prompts():
return [
# 其他提示...
{
"name": "您的提示名称",
"description": "您的提示描述",
"arguments": [
{
"name": "参数名称1",
"description": "参数描述",
"required": True/False
},
{
"name": "参数名称2",
"description": "参数描述",
"required": True/False
}
]
}
]
在get_prompt()函数中处理具体的提示请求:
@app.get_prompt()
async def get_prompt(name: str, arguments: Any):
# 其他提示处理...
if name == "您的提示名称":
return {
"messages": [
{
"role": "user",
"content": {
"type": "text",
"text": f"您的提示模板包含 {arguments['参数名称']}"
}
}
]
}
在list_prompts()中添加:
{
"name": "数据分析报告",
"description": "生成数据摘要报告。",
"arguments": [
{
"name": "startTime",
"description": "开始时间。",
"required": True
},
{
"name": "endTime",
"description": "结束时间。",
"required": True
}
]
}
在get_prompt()中实现:
if name == "数据分析报告":
return {
"messages": [
{
"role": "system",
"content": {
"type": "text",
"text": f"分析从{arguments['startTime']}到{arguments['endTime']}的数据。"
}
},
{
"role": "user",
"content": {
"type": "resource",
"resource": {
"uri": "data://reports",
"text": "请提供数据摘要。",
"mimeType": "application/json"
}
}
}
]
}
"system"、"user" 和 "assistant",用于组织对话流。"text" 和 "resource" 类型。role: "system":用于设置上下文或提供高级别指令。role: "user":模拟用户输入或提问。role: "assistant":表示Claude的响应或指令。type: "text":用于纯文本内容。type: "resource":包含外部资源,需提供 uri、text 和 mimeType 属性:{
"role": "user",
"content": {
"type": "resource",
"resource": {
"uri": "logs://recent", // 资源标识符
"text": "[2024-03-14 15:32:11] 错误:连接超时",
"mimeType": "text/plain" // MIME类型
}
}
}
文档未提及技术实现细节相关内容,故跳过此章节。
文档未提及许可证相关内容,故跳过此章节。
Prompts建议翻译为“提示”或“提示系统”。get_prompt()中添加异常捕捉,确保提示失败时有明确反馈。