Vishvakarma🏗️
用于本地LLM的类型安全模型上下文协议(MCP)服务器。使用FastAPI和Pydantic构建,统一AI代理的数据访问。
Vishvakarma扮演着 通用数据连接器,为LLM提供统一的语音优化界面,以访问不同的数据源(CRM、支持、分析)。它处理数据类型识别、API验证、智能过滤,并确保为代理调用类型安全的函数。
🚀 特性
- 通用接口:一个API来管理它们(CRM、支持、分析)。
- 语音优化:智能摘要和限制器,用于简洁的语音响应。
- 类型安全:内置 快速API 和 Pydantic v2 用于稳健验证。
- 本地LLM就绪:经过测试 拉玛3, 问题2.5,以及 LFM2.
- Docker化:已准备好部署
docker-compose.
🛠️ 快速开始
本地
# Install dependencies
pip install -r requirements.txt
# Run server
uvicorn app.main:app --reload码头工人
docker-compose up --build访问文档:
- Swagger用户界面: http://localhost:8000/docs
- 重新记录: http://localhost:8000/redoc
______________________________________________________________________
📜 问题陈述和要求
任务概述
建立生产质量 通用数据连接器 使用FastAPI,它为LLM提供了一个统一的接口,通过函数调用访问不同的数据源。连接器必须足够智能,以识别数据类型,应用业务规则,并在带宽和延迟很重要的情况下优化语音对话的响应。
业务环境
您正在为一家SaaS公司构建此功能,客户需要通过与AI助手的语音对话来查询他们的数据(CRM、支持票、分析)。关键制约因素是:
- 语音对话需要快速、简洁的响应(而不是大量数据转储)
- 数据必须与上下文相关并经过过滤
- LLM需要元数据来了解如何使用每个数据源
- 多个数据源应具有一致的接口
______________________________________________________________________
📋 需求
核心功能
- FastAPI服务器 通过健康检查和适当的错误处理
- 多个数据连接器 (至少3种类型):
- 客户CRM数据 - 支持票务系统 - 分析/指标数据
- 智能数据过滤:
- 大型数据集的自动分页 - 适当过滤数据的业务规则引擎 - 语音上下文的智能摘要
- LLM函数调用接口:
- 函数调用的OpenAPI模式生成 - 清除参数验证 - 带有元数据的结构化响应
- 数据类型检测和处理:
- 确定数据是表格、时间序列、层次结构等。 - 应用适当的转换 - 包括数据新鲜度/陈旧性指标
技术要求
- Python 3.11+
- Pydantic v2型号的FastAPI
- 正确的日志记录和错误处理
- 全程键入提示
- 配置管理(环境变量)
- 包括模拟数据生成器
- Docker部署就绪
语音优化业务规则
实施以下规则:
- 极限结果:默认语音最多10个项目
- 优先级排序:返回最新/相关的第一个
- 摘要:在适当的时候聚合指标而不是原始数据
- 情境感知:包括有用的元数据(例如,“显示47个结果中的3个”)
- 新鲜度指示器:“截至2小时前的数据”
______________________________________________________________________
🏗️ 建筑
universal-data-connector/
├── app/
│ ├── main.py # FastAPI application entry point
│ ├── config.py # Configuration management
│ ├── models/
│ │ ├── __init__.py
│ │ ├── common.py # Shared models
│ │ ├── crm.py # CRM data models
│ │ ├── support.py # Support ticket models
│ │ └── analytics.py # Analytics models
│ ├── connectors/
│ │ ├── __init__.py
│ │ ├── base.py # Base connector interface
│ │ ├── crm_connector.py # CRM data connector
│ │ ├── support_connector.py
│ │ └── analytics_connector.py
│ ├── services/
│ │ ├── __init__.py
│ │ ├── data_identifier.py # Identifies data types
│ │ ├── business_rules.py # Business rules engine
│ │ └── voice_optimizer.py # Voice-specific optimizations
│ ├── routers/
│ │ ├── __init__.py
│ │ ├── health.py
│ │ └── data.py # Data access endpoints
│ └── utils/
│ ├── __init__.py
│ ├── mock_data.py # Mock data generators
│ └── logging.py # Logging configuration
├── tests/
│ ├── __init__.py
│ ├── test_connectors.py
│ ├── test_business_rules.py
│ └── test_api.py
├── data/
│ ├── customers.json # Sample CRM data
│ ├── support_tickets.json # Sample support data
│ └── analytics.json # Sample metrics
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── .env.example
└── README.md______________________________________________________________________
🎓 学习目标
通过完成此练习,您将演示:
- API设计:使用FastAPI创建干净的RESTful API
- 类型安全:使用Pydantic模型和Python类型提示
- 抽象:构建可重用的基类和接口
- 业务逻辑:实施智能过滤和规则
- 大语言模型集成:了解函数调用模式
- 生产准备就绪:日志记录、错误处理、配置
- 语音用户体验注意事项:优化会话式AI
______________________________________________________________________
✅ 评估标准
代码质量(30%)
- 干净、可读、结构正确的代码
- 正确使用类型提示和Pydantic模型
- 全面的错误处理
- 全程记录
功能性(30%)
- 所有端点均正常工作
- 正确执行业务规则
- 数据过滤和优化工作
- 模拟数据真实且有用
法学硕士整合(20%)
- 正确生成OpenAPI架构
- 函数调用示例工作
- 针对语音优化的响应
- 良好的参数验证
文件(20%)
- 清除README中的设置说明
- 在需要的地方内联代码注释
- API文档(自动生成+自定义)
- 示例使用场景
______________________________________________________________________
📝 提交要求
- GitHub存储库 与:
- 所有源代码 - 带安装说明的README - 示例.env文件 - 工作Docker编写设置
- 演示视频 (最多5分钟):
- 显示API正在运行 - 演示3-4个示例查询 - 显示LLM函数调用集成 - 解释一个有趣的技术决策
- 书面摘要 (1页):
- 面临的挑战和解决方案 - 设计决策和权衡 - 随着时间的推移,你会有什么进步 - 你学到了什么
______________________________________________________________________
🎉 奖金挑战
如果你提前完成并想走得更远:
- 为频繁访问的数据添加缓存层(Redis)
- 对每个数据源实施速率限制
- 为大型数据集添加流式响应
- 创建web UI以测试API
- 添加身份验证和API密钥管理
- 实施webhook支持以实现实时数据更新
- 添加数据导出功能(CSV、Excel)
我从奖金挑战中实现的功能:
- 对每个数据源实施速率限制
- 添加身份验证和API密钥管理
