这个数据库设计方案确实非常完整,涵盖了 AI 聊天应用的核心功能模块。以下是一个基于 MongoDB 的数据库设计示例,使用了类似的结构,但增加了一些实际应用中的考虑:
用户集合 (users)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"username": "john_doe",
"email": "john@example.com",
"passwordHash": "$2b$10$...",
"avatar": "https://picsum.photos/200/200?random=1",
"bio": "AI enthusiast and developer",
"createdAt": ISODate("2023-05-01T12:00:00Z"),
"updatedAt": ISODate("2023-05-10T08:30:00Z"),
"settings": {
"theme": "dark",
"language": "en-US",
"defaultModel": "gpt-4"
},
"roles": ["user", "premium"],
"apiKeys": [
{
"key": "sk-1234567890abcdef",
"createdAt": ISODate("2023-05-05T10:00:00Z"),
"lastUsedAt": ISODate("2023-05-10T09:15:00Z"),
"description": "Personal API key"
}
],
"favoriteAgents": [ObjectId("645c8d3e2d3a5f0a9c1e4f2")],
"recentAgents": [
{
"agentId": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"usedAt": ISODate("2023-05-10T09:15:00Z")
}
],
"privacySettings": {
"conversationVisibility": "private",
"agentSharingDefault": "invite-only"
}
}
智能体集合 (agents)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"name": "Code Assistant",
"creator": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"description": "帮助编写和调试代码的AI助手",
"icon": "💻",
"modelConfig": {
"modelId": ObjectId("645c8d3e2d3a5f0a9c1e4f7"),
"parameters": {
"temperature": 0.7,
"maxTokens": 2048,
"topP": 0.9,
"frequencyPenalty": 0.2,
"presencePenalty": 0.2
}
},
"prompts": {
"systemPrompt": "你是一个专业的代码助手。请提供清晰、高效的代码解决方案。",
"userPromptTemplate": "请帮我解决以下问题:{problem}"
},
"knowledgeBase": {
"knowledgeBaseId": ObjectId("645c8d3e2d3a5f0a9c1e4f8"),
"indexStatus": "up-to-date",
"lastUpdatedAt": ISODate("2023-05-08T14:30:00Z")
},
"visibility": "public",
"createdAt": ISODate("2023-05-03T09:45:00Z"),
"updatedAt": ISODate("2023-05-08T14:30:00Z"),
"stats": {
"usageCount": 128,
"averageRating": 4.8,
"totalTokens": 567890
},
"plugins": [
{
"pluginId": ObjectId("645c8d3e2d3a5f0a9c1e4f9"),
"parameters": {
"searchEngine": "google"
}
}
],
"versionHistory": [
{
"version": "1.0.0",
"updatedAt": ISODate("2023-05-03T09:45:00Z"),
"updateNotes": "初始版本",
"updater": ObjectId("645c8d3e2d3a5f0a9c1e4f1")
},
{
"version": "1.1.0",
"updatedAt": ISODate("2023-05-08T14:30:00Z"),
"updateNotes": "添加了代码调试功能",
"updater": ObjectId("645c8d3e2d3a5f0a9c1e4f1")
}
]
}
对话会话集合 (conversations)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"sessionId": "sess-1234567890",
"title": "Python 数据分析项目",
"creator": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"participants": [ObjectId("645c8d3e2d3a5f0a9c1e4f1")],
"agentId": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"createdAt": ISODate("2023-05-05T10:15:00Z"),
"updatedAt": ISODate("2023-05-10T09:30:00Z"),
"lastMessageAt": ISODate("2023-05-10T09:30:00Z"),
"messageCount": 24,
"status": "active",
"tags": ["python", "data-analysis", "pandas"],
"settings": {
"model": "gpt-4",
"temperature": 0.7,
"maxResponseLength": 2048,
"autoSave": true
},
"stats": {
"totalTokens": 15678,
"totalResponseTime": 45.6,
"averageResponseTime": 1.9
},
"historyAgents": [
{
"agentId": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"timeRange": {
"start": ISODate("2023-05-05T10:15:00Z"),
"end": null
}
}
],
"quickReplies": ["谢谢", "请解释", "提供示例", "优化这段代码"],
"hidden": false,
"pinned": true,
"starred": true
}
消息集合 (messages)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f4"),
"sessionId": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"conversationId": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"senderId": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"senderType": "user",
"content": "如何使用 pandas 进行数据清洗?",
"createdAt": ISODate("2023-05-05T10:15:30Z"),
"metadata": {
"model": "gpt-4",
"temperature": 0.7,
"tokensUsed": 42,
"prompt": "如何使用 pandas 进行数据清洗?",
"agentId": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"functionCalls": []
},
"attachments": [],
"responseTime": 0,
"references": [],
"status": "sent",
"editHistory": []
}
智能体共享集合 (agent_shares)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f5"),
"agentId": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"sharer": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"recipient": ObjectId("645c8d3e2d3a5f0a9c1e4f6"),
"permissions": "edit",
"sharedAt": ISODate("2023-05-07T11:30:00Z"),
"status": "accepted",
"notes": "这个代码助手非常实用,你可以试试看"
}
模型配置集合 (models)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f7"),
"name": "gpt-4",
"displayName": "GPT-4",
"provider": "openai",
"description": "OpenAI的GPT-4大型语言模型",
"parameters": {
"temperature": {
"min": 0,
"max": 2,
"default": 0.7
},
"maxTokens": {
"min": 1,
"max": 8192,
"default": 2048
},
"topP": {
"min": 0,
"max": 1,
"default": 1
}
},
"enabled": true,
"createdAt": ISODate("2023-04-01T00:00:00Z"),
"updatedAt": ISODate("2023-04-15T00:00:00Z"),
"supportedFeatures": ["chat", "functionCall", "embeddings"]
}
用户自定义模板集合 (templates)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f9"),
"userId": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"name": "数据分析项目模板",
"description": "用于启动数据分析项目的模板",
"content": "我需要分析以下数据集:{dataset}\n目标是:{objective}\n请提供完整的分析流程和代码。",
"variables": ["dataset", "objective"],
"createdAt": ISODate("2023-05-06T14:20:00Z"),
"updatedAt": ISODate("2023-05-06T14:20:00Z"),
"usageCount": 5,
"shared": false
}
这个设计考虑了以下关键点:
- 引用关系:使用 ObjectId 在集合之间建立引用,如用户与智能体、对话与会话等
- 时间追踪:为每个文档添加了创建时间和更新时间
- 统计信息:收集使用数据以支持分析和优化
- 版本控制:为智能体维护版本历史
- 扩展性:通过插件和知识库支持功能扩展
- 用户体验:支持对话管理功能(收藏、置顶、标签等)
- 权限管理:通过智能体共享集合实现细粒度的权限控制
实际应用中,你可能需要根据具体业务需求调整字段和索引,以优化查询性能。
关键字改成中文
以下是将关键字替换为中文后的数据库设计示例(基于 MongoDB,保留原结构逻辑):
用户集合(用户)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"用户名": "john_doe",
"邮箱": "john@example.com",
"密码哈希": "$2b$10$...",
"头像": "https://picsum.photos/200/200?random=1",
"个人简介": "AI爱好者及开发者",
"创建时间": ISODate("2023-05-01T12:00:00Z"),
"更新时间": ISODate("2023-05-10T08:30:00Z"),
"设置": {
"主题": "深色",
"语言": "en-US",
"默认模型": "gpt-4"
},
"角色": ["普通用户", "高级会员"],
"API密钥": [
{
"密钥": "sk-1234567890abcdef",
"创建时间": ISODate("2023-05-05T10:00:00Z"),
"最后使用时间": ISODate("2023-05-10T09:15:00Z"),
"描述": "个人API密钥"
}
],
"收藏的智能体": [ObjectId("645c8d3e2d3a5f0a9c1e4f2")],
"最近使用的智能体": [
{
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"使用时间": ISODate("2023-05-10T09:15:00Z")
}
],
"隐私设置": {
"对话可见性": "私密",
"智能体共享默认权限": "仅邀请"
}
}
智能体集合(智能体)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"名称": "代码助手",
"创建者": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"描述": "帮助编写和调试代码的AI助手",
"图标": "💻",
"模型配置": {
"模型ID": ObjectId("645c8d3e2d3a5f0a9c1e4f7"),
"参数": {
"温度": 0.7,
"最大令牌数": 2048,
"顶部概率": 0.9,
"频率惩罚": 0.2,
"存在惩罚": 0.2
}
},
"提示词": {
"系统提示词": "你是一个专业的代码助手。请提供清晰、高效的代码解决方案。",
"用户提示词模板": "请帮我解决以下问题:{problem}"
},
"知识库": {
"知识库ID": ObjectId("645c8d3e2d3a5f0a9c1e4f8"),
"索引状态": "最新",
"最后更新时间": ISODate("2023-05-08T14:30:00Z")
},
"可见性": "公开",
"创建时间": ISODate("2023-05-03T09:45:00Z"),
"更新时间": ISODate("2023-05-08T14:30:00Z"),
"统计信息": {
"使用次数": 128,
"平均评分": 4.8,
"总令牌消耗": 567890
},
"插件": [
{
"插件ID": ObjectId("645c8d3e2d3a5f0a9c1e4f9"),
"参数": {
"搜索引擎": "谷歌"
}
}
],
"版本历史": [
{
"版本号": "1.0.0",
"更新时间": ISODate("2023-05-03T09:45:00Z"),
"更新内容": "初始版本",
"更新者": ObjectId("645c8d3e2d3a5f0a9c1e4f1")
},
{
"版本号": "1.1.0",
"更新时间": ISODate("2023-05-08T14:30:00Z"),
"更新内容": "添加了代码调试功能",
"更新者": ObjectId("645c8d3e2d3a5f0a9c1e4f1")
}
]
}
对话会话集合(对话会话)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"会话ID": "sess-1234567890",
"标题": "Python数据分析项目",
"创建者": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"参与者": [ObjectId("645c8d3e2d3a5f0a9c1e4f1")],
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"创建时间": ISODate("2023-05-05T10:15:00Z"),
"更新时间": ISODate("2023-05-10T09:30:00Z"),
"最后消息时间": ISODate("2023-05-10T09:30:00Z"),
"消息数量": 24,
"状态": "活跃",
"标签": ["python", "数据分析", "pandas"],
"设置": {
"模型": "gpt-4",
"温度": 0.7,
"最大响应长度": 2048,
"自动保存": true
},
"统计信息": {
"总令牌数": 15678,
"总响应时间": 45.6,
"平均响应时间": 1.9
},
"历史智能体": [
{
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"使用时间范围": {
"开始": ISODate("2023-05-05T10:15:00Z"),
"结束": null
}
}
],
"快捷回复": ["谢谢", "请解释", "提供示例", "优化这段代码"],
"隐藏": false,
"置顶": true,
"星标": true
}
消息集合(消息)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f4"),
"会话ID": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"对话ID": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"发送者ID": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"发送者类型": "用户",
"内容": "如何使用pandas进行数据清洗?",
"创建时间": ISODate("2023-05-05T10:15:30Z"),
"元数据": {
"模型": "gpt-4",
"温度": 0.7,
"使用令牌数": 42,
"提示词": "如何使用pandas进行数据清洗?",
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"函数调用": []
},
"附件": [],
"响应时间": 0,
"引用消息": [],
"状态": "已发送",
"编辑历史": []
}
智能体共享集合(智能体共享)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f5"),
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"共享者": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"接收者": ObjectId("645c8d3e2d3a5f0a9c1e4f6"),
"权限": "编辑",
"共享时间": ISODate("2023-05-07T11:30:00Z"),
"状态": "已接受",
"备注": "这个代码助手非常实用,你可以试试看"
}
模型配置集合(模型配置)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f7"),
"名称": "gpt-4",
"显示名称": "GPT-4",
"提供者": "openai",
"描述": "OpenAI的GPT-4大型语言模型",
"参数": {
"温度": {
"最小值": 0,
"最大值": 2,
"默认值": 0.7
},
"最大令牌数": {
"最小值": 1,
"最大值": 8192,
"默认值": 2048
},
"顶部概率": {
"最小值": 0,
"最大值": 1,
"默认值": 1
}
},
"启用状态": true,
"创建时间": ISODate("2023-04-01T00:00:00Z"),
"更新时间": ISODate("2023-04-15T00:00:00Z"),
"支持的功能": ["聊天", "函数调用", "嵌入"]
}
用户自定义模板集合(自定义模板)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f9"),
"用户ID": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"名称": "数据分析项目模板",
"描述": "用于启动数据分析项目的模板",
"内容": "我需要分析以下数据集:{dataset}\n目标是:{objective}\n请提供完整的分析流程和代码。",
"变量": ["dataset", "objective"],
"创建时间": ISODate("2023-05-06T14:20:00Z"),
"更新时间": ISODate("2023-05-06T14:20:00Z"),
"使用次数": 5,
"共享状态": false
}
关键调整说明:
-
字段名中文映射:
- 原英文关键字(如
username
、email
)直接翻译为中文(如用户名
、邮箱
),保留技术术语(如ObjectId
、ISODate
)。 - 嵌套对象中的字段(如
settings.theme
)同步调整为中文(如设置.主题
)。
- 原英文关键字(如
-
业务术语本地化:
roles
翻译为角色
,值使用中文描述(如普通用户
、高级会员
)。visibility
翻译为可见性
,值(如public
)对应为公开
、私密
等。
-
保留技术逻辑:
- 数据库主键(
_id
)、时间格式(ISODate
)、对象引用(ObjectId
)等技术字段保持不变,确保与 MongoDB 语法兼容。
- 数据库主键(
此设计在保持原数据库结构和功能的基础上,通过中文关键字提升了业务可读性,适用于中文语境的开发和维护。
给每一个例子给出具体的具体数据的实例
好的,以下是每个集合的具体数据实例,包含真实场景下的具体值(部分字段使用模拟数据):
用户集合(用户)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"用户名": "zhang_san",
"邮箱": "zhangsan@example.com",
"密码哈希": "$2b$10$xJvF2rKjM4aLdH1pZqO7uO1eM5rTfQ8c9gG2kZpWvJjKxJjHk",
"头像": "https://picsum.photos/200/200?random=1",
"个人简介": "资深数据分析师,擅长Python和机器学习",
"创建时间": ISODate("2023-01-15T08:30:00Z"),
"更新时间": ISODate("2023-06-02T14:15:00Z"),
"设置": {
"主题": "深色",
"语言": "zh-CN",
"默认模型": "gpt-4"
},
"角色": ["高级会员", "开发者"],
"API密钥": [
{
"密钥": "sk-5d8f9e7a6b5c4d3e2f1a0b9c8d7e6f",
"创建时间": ISODate("2023-03-20T10:45:00Z"),
"最后使用时间": ISODate("2023-06-01T09:20:00Z"),
"描述": "Jupyter Notebook项目使用"
}
],
"收藏的智能体": [
ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
ObjectId("645c8d3e2d3a5f0a9c1e4f3")
],
"最近使用的智能体": [
{
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"使用时间": ISODate("2023-06-02T14:15:00Z")
},
{
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f4"),
"使用时间": ISODate("2023-06-01T09:20:00Z")
}
],
"隐私设置": {
"对话可见性": "私密",
"智能体共享默认权限": "仅邀请"
}
}
智能体集合(智能体)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"名称": "数据分析助手",
"创建者": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"描述": "专业的数据分析和可视化AI助手,支持Python、R和SQL",
"图标": "📊",
"模型配置": {
"模型ID": ObjectId("645c8d3e2d3a5f0a9c1e4f7"),
"参数": {
"温度": 0.6,
"最大令牌数": 4096,
"顶部概率": 0.95,
"频率惩罚": 0.1,
"存在惩罚": 0.1
}
},
"提示词": {
"系统提示词": "你是一个专业的数据分析助手。请提供清晰、高效的数据分析方案和代码。回答应包含适当的可视化建议和统计解释。",
"用户提示词模板": "我有以下数据集:{dataset}\n需要分析:{objective}\n请提供代码和解释。"
},
"知识库": {
"知识库ID": ObjectId("645c8d3e2d3a5f0a9c1e4f8"),
"索引状态": "已更新",
"最后更新时间": ISODate("2023-05-28T16:30:00Z")
},
"可见性": "公开",
"创建时间": ISODate("2023-02-10T11:45:00Z"),
"更新时间": ISODate("2023-05-28T16:30:00Z"),
"统计信息": {
"使用次数": 328,
"平均评分": 4.9,
"总令牌消耗": 1245678
},
"插件": [
{
"插件ID": ObjectId("645c8d3e2d3a5f0a9c1e4f9"),
"参数": {
"数据源": ["CSV", "Excel", "SQL"],
"可视化库": ["Matplotlib", "Seaborn", "Plotly"]
}
}
],
"版本历史": [
{
"版本号": "1.0.0",
"更新时间": ISODate("2023-02-10T11:45:00Z"),
"更新内容": "初始版本,支持基础数据分析",
"更新者": ObjectId("645c8d3e2d3a5f0a9c1e4f1")
},
{
"版本号": "1.1.0",
"更新时间": ISODate("2023-03-15T09:20:00Z"),
"更新内容": "添加时间序列分析功能",
"更新者": ObjectId("645c8d3e2d3a5f0a9c1e4f1")
},
{
"版本号": "1.2.0",
"更新时间": ISODate("2023-05-28T16:30:00Z"),
"更新内容": "增强可视化能力,支持复杂图表生成",
"更新者": ObjectId("645c8d3e2d3a5f0a9c1e4f1")
}
]
}
对话会话集合(对话会话)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"会话ID": "sess-9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c",
"标题": "电商销售数据分析",
"创建者": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"参与者": [
ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
ObjectId("645c8d3e2d3a5f0a9c1e4f5")
],
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"创建时间": ISODate("2023-05-01T14:20:00Z"),
"更新时间": ISODate("2023-06-02T15:30:00Z"),
"最后消息时间": ISODate("2023-06-02T15:30:00Z"),
"消息数量": 42,
"状态": "活跃",
"标签": ["电商", "销售分析", "Python", "月度报告"],
"设置": {
"模型": "gpt-4",
"温度": 0.6,
"最大响应长度": 3072,
"自动保存": true
},
"统计信息": {
"总令牌数": 32768,
"总响应时间": 86.4,
"平均响应时间": 2.06
},
"历史智能体": [
{
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"使用时间范围": {
"开始": ISODate("2023-05-01T14:20:00Z"),
"结束": null
}
}
],
"快捷回复": ["生成报告", "创建图表", "解释这个结果", "优化代码"],
"隐藏": false,
"置顶": true,
"星标": true
}
消息集合(消息)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f4"),
"会话ID": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"对话ID": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"发送者ID": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"发送者类型": "用户",
"内容": "我有一份电商销售数据,包含订单日期、产品类别、销售额和客户地区。我需要分析过去6个月的销售趋势和地区分布。",
"创建时间": ISODate("2023-05-01T14:20:30Z"),
"元数据": {
"模型": "gpt-4",
"温度": 0.6,
"使用令牌数": 78,
"提示词": "我有一份电商销售数据,包含订单日期、产品类别、销售额和客户地区。我需要分析过去6个月的销售趋势和地区分布。",
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"函数调用": []
},
"附件": [
{
"类型": "CSV",
"URL": "https://example.com/data/ecommerce_sales.csv",
"名称": "sales_data_last_6_months.csv",
"元数据": {
"大小": "2.4MB",
"行数": 15000,
"列数": 8
}
}
],
"响应时间": 0,
"引用消息": [],
"状态": "已发送",
"编辑历史": []
}
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f5"),
"会话ID": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"对话ID": ObjectId("645c8d3e2d3a5f0a9c1e4f3"),
"发送者ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"发送者类型": "智能体",
"内容": "我已分析了过去6个月的销售数据,发现以下趋势:\n\n1. 电子产品销售额增长了23%,但服装类下降了12%\n2. 华东地区贡献了最高的销售额(38%),其次是华南地区(25%)\n3. 周末的平均订单金额比工作日高18%\n\n以下是用于分析的Python代码:\n\n```python\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\n# 加载数据\ndf = pd.read_csv('sales_data_last_6_months.csv')\n\n# 转换日期格式\ndf['订单日期'] = pd.to_datetime(df['订单日期'])\n\n# 按月份分析销售趋势\nmonthly_sales = df.groupby(df['订单日期'].dt.to_period('M'))['销售额'].sum()\n\n# 按地区分析分布\nregion_sales = df.groupby('客户地区')['销售额'].sum().sort_values(ascending=False)\n\n# 可视化\nfig, axes = plt.subplots(1, 2, figsize=(15, 5))\nmonthly_sales.plot(kind='line', ax=axes[0], title='月度销售趋势')\nregion_sales.plot(kind='bar', ax=axes[1], title='地区销售分布')\nplt.tight_layout()\nplt.show()\n```\n\n需要我生成详细的报告或进行其他分析吗?",
"创建时间": ISODate("2023-05-01T14:25:45Z"),
"元数据": {
"模型": "gpt-4",
"温度": 0.6,
"使用令牌数": 325,
"提示词": "我有一份电商销售数据,包含订单日期、产品类别、销售额和客户地区。我需要分析过去6个月的销售趋势和地区分布。",
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"函数调用": []
},
"附件": [
{
"类型": "PNG",
"URL": "https://example.com/charts/sales_analysis.png",
"名称": "销售分析图表.png",
"元数据": {
"大小": "180KB",
"尺寸": "1200x800"
}
}
],
"响应时间": 4.2,
"引用消息": [ObjectId("645c8d3e2d3a5f0a9c1e4f4")],
"状态": "已发送",
"编辑历史": []
}
智能体共享集合(智能体共享)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f6"),
"智能体ID": ObjectId("645c8d3e2d3a5f0a9c1e4f2"),
"共享者": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"接收者": ObjectId("645c8d3e2d3a5f0a9c1e4f5"),
"权限": "编辑",
"共享时间": ISODate("2023-05-03T10:15:00Z"),
"状态": "已接受",
"备注": "这个数据分析助手非常实用,我们团队可以共同使用它来分析市场数据。"
}
模型配置集合(模型配置)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f7"),
"名称": "gpt-4",
"显示名称": "GPT-4",
"提供者": "openai",
"描述": "OpenAI的最新大型语言模型,具有强大的推理和生成能力",
"参数": {
"温度": {
"最小值": 0,
"最大值": 2,
"默认值": 0.7
},
"最大令牌数": {
"最小值": 1,
"最大值": 8192,
"默认值": 2048
},
"顶部概率": {
"最小值": 0,
"最大值": 1,
"默认值": 1
}
},
"启用状态": true,
"创建时间": ISODate("2023-01-01T00:00:00Z"),
"更新时间": ISODate("2023-04-15T00:00:00Z"),
"支持的功能": ["聊天", "函数调用", "代码生成", "嵌入"]
}
用户自定义模板集合(自定义模板)
json
{
"_id": ObjectId("645c8d3e2d3a5f0a9c1e4f9"),
"用户ID": ObjectId("645c8d3e2d3a5f0a9c1e4f1"),
"名称": "月度销售分析模板",
"描述": "用于快速分析月度销售数据的模板",
"内容": "我有以下月度销售数据:\n{dataset}\n\n请完成以下分析:\n1. 计算每个类别的销售额占比\n2. 分析环比增长/下降趋势\n3. 识别表现最好和最差的产品\n4. 生成可视化图表\n5. 提供关键发现和建议\n\n请提供完整的Python代码和解释。",
"变量": ["dataset"],
"创建时间": ISODate("2023-03-10T16:45:00Z"),
"更新时间": ISODate("2023-04-05T11:30:00Z"),
"使用次数": 12,
"共享状态": false
}
这些数据实例展示了真实场景下的具体数据:
- 用户:包含真实的设置偏好、API 密钥和收藏的智能体
- 智能体:具有明确的功能描述、模型参数和版本历史
- 对话会话:记录了电商数据分析的完整流程
- 消息:包含用户问题、智能体回复以及代码和图表附件
- 智能体共享:展示了团队协作场景
- 模型配置:定义了 GPT-4 的可用参数范围
- 自定义模板:封装了常用的分析流程
这些数据可以直接用于测试或演示 AI 聊天应用的功能。