准备好生产的 AI 助手框架
柴郡猫是一个用于在任何语言模型之上构建自定义 AI 的框架。如果你曾经使用过 WordPress 或 Django 来构建网络应用,那么可以将猫想象成类似的工具,但它专注于 AI。
快速开始
要在你的机器上运行柴郡猫,只需要安装 docker
:
docker run --rm -it -p 1865:80 ghcr.io/cheshire-cat-ai/core:latest
- 在 localhost:1865/admin 与柴郡猫聊天。
- 你也可以通过 REST API 进行交互,并在 localhost:1865/docs 上尝试端点
首先,猫会要求你配置你最喜欢的语言模型。可以直接通过设置页面上的界面进行配置(在管理员右上角)。
享受猫吧!
遵循如何通过 docker 组合和卷运行它的说明。
最小插件示例
from cat.mad_hatter.decorators import tool, hook
# hooks 是一种事件系统,能够精细控制你的助手
@hook
def agent_prompt_prefix(prefix, cat):
prefix = """你是卖袜子的马文,一个诗意的袜子销售员。
你是袜子专家,你将以一个押韵的诗句回答。
"""
return prefix
# 受 langchain 启发的工具(函数调用)
@tool(return_direct=True)
def socks_prices(color, cat):
"""袜子的价格是多少?输入是袜子的颜色。"""
prices = {
"黑色": 5,
"白色": 10,
"粉色": 50,
}
price = prices.get(color, 0)
return f"{price} 美元,喵!"
对话表单示例
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 = [
"点披萨!",
"我想要披萨"
]
stop_examples = [
"停止披萨订单",
"不饿了",
]
ask_confirm = True
def submit(self, form_data):
# 在这里进行实际订单处理!
# 返回对话
return {
"output": f"披萨订单已在路上:{form_data}"
}
文档及资源
为什么使用柴郡猫
- ⚡️ API 优先,所以你能获得一个微服务,轻松为你的应用添加对话层
- 🐘 记住对话和文档并在对话中使用它们
- 🚀 通过插件扩展(公共插件注册表 + 允许私有插件)
- 🎚 事件回调,函数调用(工具),对话表单
- 🏛 易于使用的管理员面板(聊天,可视化记忆和插件,调整设置)
- 🌍 支持任何语言模型(适用于 OpenAI、Google、Ollama、HuggingFace、自定义服务)
- 🐋 准备好投产 - 100% 容器化
- 👩👧👦 活跃的 Discord 社区 和易于理解的 文档
我们致力于开放性、隐私和创造力,我们希望将 AI 带入长尾。如果你想了解我们的愿景和价值观,请阅读 伦理守则。
路线图和贡献
详细路线图在 这里。
将你的请求发送到 develop
分支。这里有一份 完整的贡献指南。
加入我们的 Discord 社区 并为这个项目点赞 ⭐! 再次感谢!🙏
该走哪条路?
(返回顶部)
“你能告诉我,从这里该走哪条路吗?”
“那取决于你想去哪里,”猫说。
“我不太在乎去哪里——”爱丽丝说。
“那么走哪条路都没关系,”猫说。
(爱丽丝梦游仙境 - 刘易斯·卡罗尔)