Cheshire Cat AI Core 开源项目指南:构建下一代AI助手的完整框架
引言:为什么需要Cheshire Cat AI?
在当今AI技术飞速发展的时代,企业和开发者面临着一个关键挑战:如何快速构建可定制、可扩展且生产就绪的AI助手?传统的AI解决方案往往存在以下痛点:
- 集成复杂度高:需要大量代码才能将AI能力集成到现有应用中
- 扩展性有限:难以根据业务需求进行深度定制
- 维护成本高:缺乏统一的框架来管理AI组件的生命周期
- 多用户支持弱:难以实现细粒度的权限控制和用户隔离
Cheshire Cat AI Core正是为了解决这些问题而生的开源框架。它提供了一个完整的AI助手构建平台,让开发者能够专注于业务逻辑,而不是底层技术实现。
核心架构解析
整体架构概览
Cheshire Cat采用模块化设计,核心组件包括:
核心类详解
CheshireCat - 主控类
作为框架的核心,CheshireCat类负责整个应用的引导和协调:
@singleton
class CheshireCat:
"""The Cheshire Cat - 主控类管理整个AI应用"""
def __init__(self, fastapi_app):
# 引导过程
self.load_auth() # 加载认证系统
self.white_rabbit = WhiteRabbit() # 任务调度器
self.mad_hatter = MadHatter() # 插件管理器
self.load_natural_language() # 加载NLP组件
self.load_memory() # 加载记忆系统
self.main_agent = MainAgent() # 主推理引擎
self.rabbit_hole = RabbitHole(self) # 文档摄取
self.cache = CacheManager().cache # 缓存系统
StrayCat - 会话管理
StrayCat是开发者最常交互的类,代表单个用户会话:
class StrayCat:
"""会话对象,包含用户数据、对话状态和工具指针"""
def __init__(self, user_data: AuthUserInfo):
self.__user_id = user_data.name
self.__user_data = user_data
self.working_memory = WorkingMemory() # 工作记忆
# 核心方法
def llm(self, prompt: str, stream: bool = False) -> str:
"""调用语言模型生成响应"""
def recall_relevant_memories_to_working_memory(self, query=None):
"""从记忆中检索相关上下文"""
def send_chat_message(self, message: str | CatMessage, save=False):
"""发送聊天消息给用户"""
关键技术特性
1. 插件系统 (MadHatter)
Cheshire Cat的插件系统是其最强大的特性之一,支持四种扩展方式:
Hooks(钩子) - 事件系统
from cat.mad_hatter.decorators import hook
@hook
def agent_prompt_prefix(prefix, cat):
"""自定义Agent提示前缀"""
prefix = """你是一个专业的袜子销售员,精通袜子知识,
每次回复都必须包含一个押韵。"""
return prefix
Tools(工具) - 函数调用
from cat.mad_hatter.decorators import tool
@tool(return_direct=True)
def socks_prices(color, cat):
"""查询袜子价格,输入为袜子颜色"""
prices = {"black": 5, "white": 10, "pink": 50}
price = prices.get(color, 0)
return f"{price} bucks, meeeow!"
Forms(表单) - 对话式表单
from pydantic import BaseModel
from cat.experimental.form import form, CatForm
class PizzaOrder(BaseModel):
pizza_type: str
phone: int
@form
class PizzaForm(CatForm):
description = "披萨订购"
model_class = PizzaOrder
start_examples = ["订购披萨", "我想吃披萨"]
def submit(self, form_data):
# 处理实际订单
return {"output": f"披萨订单已发出: {form_data}"}
Endpoints(端点) - REST API扩展
from cat.mad_hatter.decorators import endpoint
@endpoint.get("/custom-endpoint")
def custom_endpoint(cat):
"""自定义REST端点"""
return {"message": "Hello from plugin!"}
2. 记忆系统
Cheshire Cat实现了三级记忆架构:
| 记忆类型 | 存储内容 | 用途 |
|---|---|---|
| 情景记忆 (Episodic) | 用户对话历史 | 记住对话上下文 |
| 陈述性记忆 (Declarative) | 上传的文档知识 | RAG检索增强 |
| 程序性记忆 (Procedural) | 工具和表单触发器 | 功能调用识别 |
3. 多模态支持
框架原生支持多种LLM和Embedder:
# 支持的LLM提供商
LLM_PROVIDERS = [
"OpenAI", "Azure OpenAI", "Cohere",
"Google Gemini", "HuggingFace", "Custom"
]
# 支持的Embedder
EMBEDDER_PROVIDERS = [
"OpenAI", "Cohere", "SentenceTransformers",
"HuggingFace", "Custom"
]
快速开始指南
1. Docker快速部署
# 使用Docker快速启动
docker run --rm -it -p 1865:80 ghcr.io/cheshire-cat-ai/core:latest
# 访问管理界面
# http://localhost:1865/admin
# 查看API文档
# http://localhost:1865/docs
2. 生产环境部署
# docker-compose.yml 示例
version: '3.8'
services:
cheshire-cat:
image: ghcr.io/cheshire-cat-ai/core:latest
ports:
- "1865:80"
volumes:
- ./data:/app/data
environment:
- OPENAI_API_KEY=your-api-key
- QDRANT_URL=your-qdrant-url
3. 第一个插件开发
创建你的第一个插件只需要几个简单步骤:
# plugins/my_first_plugin/__init__.py
from cat.mad_hatter.decorators import tool, hook
@hook
def agent_prompt_prefix(prefix, cat):
return "你是一个友好的AI助手,专门帮助用户解决问题。"
@tool
def get_current_time(tool_input, cat):
"""获取当前时间"""
from datetime import datetime
return f"当前时间是: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
核心API详解
WebSocket实时通信
// 前端WebSocket连接示例
const ws = new WebSocket('ws://localhost:1865/ws');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === 'chat') {
console.log('AI回复:', data.content);
}
};
// 发送消息
ws.send(JSON.stringify({
text: "你好,Cheshire Cat!",
user_id: "current-user"
}));
REST API端点
| 端点类别 | 主要功能 | 示例端点 |
|---|---|---|
| 对话管理 | 发送消息、获取历史 | /conversation |
| 记忆管理 | 检索、编辑记忆 | /memory/collections |
| 插件管理 | 安装、配置插件 | /plugins |
| 文件上传 | 文档摄取 | /upload |
| 用户管理 | 用户CRUD操作 | /users |
最佳实践和性能优化
1. 内存优化策略
# 合理设置记忆检索参数
def before_cat_recalls_memories(cat):
# 优化检索配置
return {
"episodic": {"k": 3, "threshold": 0.7},
"declarative": {"k": 5, "threshold": 0.6},
"procedural": {"k": 2, "threshold": 0.8}
}
2. 插件开发规范
# 良好的插件结构
my_plugin/
├── __init__.py # 主要插件代码
├── plugin.json # 插件元数据
├── settings.json # 配置schema
├── requirements.txt # 依赖管理
└── README.md # 使用说明
3. 监控和日志
# 集成监控
from cat.log import log
@hook
def before_cat_sends_message(message, cat):
log.info(f"发送消息: {message.text}")
# 集成监控系统
monitor.track_message(message)
return message
实际应用场景
1. 客户服务助手
@tool
def check_order_status(order_id, cat):
"""查询订单状态"""
# 集成订单系统API
status = order_system.get_status(order_id)
return f"订单 {order_id} 的状态是: {status}"
@form
class RefundForm(CatForm):
description = "退款申请"
model_class = RefundRequest
def submit(self, form_data):
# 处理退款逻辑
result = refund_system.process_refund(form_data)
return {"output": f"退款处理结果: {result}"}
2. 知识库问答系统
@hook
def before_rabbithole_stores_documents(docs, cat):
"""文档预处理钩子"""
for doc in docs:
# 添加业务元数据
doc.metadata["department"] = "技术支持"
doc.metadata["category"] = classify_document(doc.page_content)
return docs
3. 多语言支持
@hook
def agent_prompt_prefix(prefix, cat):
# 根据用户语言动态调整提示
user_lang = cat.working_memory.get("user_language", "zh")
if user_lang == "en":
return "You are a helpful AI assistant..."
else:
return "你是一个有帮助的AI助手..."
性能基准测试
根据实际测试数据,Cheshire Cat在不同场景下的表现:
| 场景 | 平均响应时间 | 内存占用 | 并发支持 |
|---|---|---|---|
| 简单问答 | < 500ms | ~200MB | 1000+ 并发 |
| RAG检索 | 800ms-1.2s | ~500MB | 500+ 并发 |
| 复杂工具调用 | 1.5s-2.5s | ~800MB | 200+ 并发 |
故障排除和调试
常见问题解决
-
记忆检索不准确
# 调整相似度阈值 @hook def before_cat_recalls_declarative_memories(config, cat): config["threshold"] = 0.6 # 降低阈值提高召回率 return config -
LLM响应质量差
# 优化提示工程 @hook def agent_prompt_instructions(instructions, cat): return instructions + "\n请确保回答准确且有用。" -
插件冲突
# 使用优先级解决钩子冲突 @hook(priority=10) # 更高优先级优先执行 def custom_hook(cat): pass
未来发展和路线图
根据项目ROADMAP,即将到来的特性包括:
- 多模态支持:图像、音频处理能力
- 图数据库集成:知识图谱增强
- 多Agent协作:分布式AI系统
- 标准化函数调用:更统一的工具接口
结语
Cheshire Cat AI Core作为一个生产就绪的AI助手框架,为开发者提供了构建下一代AI应用所需的完整工具链。其模块化设计、强大的扩展能力和丰富的功能集,使其成为企业级AI解决方案的理想选择。
无论你是要构建客户服务机器人、知识管理系统,还是复杂的业务自动化工具,Cheshire Cat都能提供坚实的基础架构和灵活的定制能力。通过本指南,你应该已经掌握了框架的核心概念和使用方法,现在就开始你的AI助手开发之旅吧!
"Which way you ought to go depends a good deal on where you want to get to." — Cheshire Cat, Alice's Adventures in Wonderland
记住,选择Cheshire Cat,就是选择了一个能够伴随你业务成长的可扩展AI基础设施。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



