README
🚀 Umami分析服务提示系统配置指南
Umami是一个功能强大的分析服务框架,支持通过自定义提示(Prompts)进行灵活扩展。本指南将详细介绍如何在src/analytics_service/server.py中实现和管理这些提示,帮助你灵活扩展Umami分析服务的功能,满足不同业务需求。
🚀 快速开始
Umami分析服务提示系统允许用户通过自定义提示来灵活扩展功能。你可以在src/analytics_service/server.py文件中进行提示的注册、逻辑实现等操作。
✨ 主要特性
- 支持通过自定义提示(Prompts)进行灵活扩展。
- 定义了提示、参数、消息角色和内容类型等核心概念,便于组织对话流。
- 提供了详细的消息结构规范,确保信息传递的准确性。
- 给出了最佳实践建议,帮助用户更好地使用提示系统。
- 包含示例应用和高级功能,方便用户快速上手和进行功能扩展。
📦 安装指南
文档未提及安装相关内容,故跳过此章节。
💻 使用示例
基础用法
注册提示
在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()中添加异常捕捉,确保提示失败时有明确反馈。 - 日志记录:记录所有提示请求和响应,便于调试和分析。
Scan to join WeChat group