Open Assistant API: 开源智能助手的新纪元
在人工智能快速发展的今天,智能助手已成为各行各业提升效率的重要工具。然而,大多数主流智能助手API都是封闭的商业产品,难以满足开发者的个性化需求。为了解决这一问题,MLT-OSS团队推出了Open Assistant API - 一个开源、可自托管的智能助手API框架,为开发者提供了更多的自由度和可能性。
什么是Open Assistant API?
Open Assistant API是一个开箱即用的开源智能助手API框架。它不仅兼容官方OpenAI接口,还支持自定义扩展LLM、RAG、函数调用和工具能力。这意味着开发者可以使用熟悉的OpenAI客户端库来构建应用,同时享受更多的灵活性和功能。
该项目的核心优势包括:
-
开源性: 作为开源项目,开发者可以自由查看、修改和扩展代码,根据自身需求进行定制。
-
自托管: 支持本地部署,保护数据隐私和安全。
-
多模型支持: 通过集成One API,可以支持更多商业和私有模型。
-
RAG引擎: 集成了R2R RAG引擎,支持多种文件格式的检索增强生成。
-
工具扩展: 可以轻松集成各种外部工具和服务,增强助手的能力。
Open Assistant API vs OpenAI Assistant API
相比OpenAI的官方Assistant API,Open Assistant API在多个方面具有优势:
-
生态系统策略: Open Assistant API采用开源策略,而OpenAI是闭源的。
-
RAG引擎: Open Assistant API支持R2R引擎,提供更灵活的RAG能力。
-
互联网搜索: Open Assistant API支持在线搜索,而OpenAI不支持。
-
内置工具: Open Assistant API的工具可扩展,OpenAI则不可扩展。
-
LLM支持: Open Assistant API可以支持更多LLM模型,而OpenAI仅支持GPT系列。
-
本地部署: Open Assistant API支持本地部署,OpenAI则不支持。
这些特性使得Open Assistant API成为一个更加灵活和强大的选择,特别是对于那些需要定制化解决方案的开发者和企业。
快速上手Open Assistant API
要开始使用Open Assistant API,最简单的方法是运行docker-compose.yml文件。在运行之前,请确保您的机器上已安装Docker和Docker Compose。
配置
首先,进入项目根目录,打开docker-compose.yml
文件,填写OpenAI API密钥和Bing搜索密钥(可选):
# openai api_key (支持OneAPI api_key)
OPENAI_API_KEY=<openai_api_key>
# bing搜索密钥 (可选)
BING_SUBSCRIPTION_KEY=<bing_subscription_key>
建议配置R2R RAG引擎以替换默认的RAG实现,提供更好的RAG能力:
# RAG配置
FILE_SERVICE_MODULE=app.services.file.impl.r2r_file.R2RFileService
R2R_BASE_URL=http://<r2r_api_address>
R2R_USERNAME=<r2r_username>
R2R_PASSWORD=<r2r_password>
运行
使用Docker Compose运行:
docker compose up -d
访问API
API基础URL: http://127.0.0.1:8086/api/v1 接口文档地址: http://127.0.0.1:8086/docs
使用示例
以下是使用官方OpenAI Python库创建和运行AI助手的示例:
import openai
client = openai.OpenAI(
base_url="http://127.0.0.1:8086/api/v1",
api_key="xxx"
)
assistant = client.beta.assistants.create(
name="demo",
instructions="You are a helpful assistant.",
model="gpt-4-1106-preview"
)
如果需要探索其他用法,如流式输出、工具(web_search、retrieval、function)等,可以在examples目录下找到相应的代码。
权限管理
Open Assistant API提供了基于令牌的简单用户隔离,以满足SaaS部署需求。可以通过配置APP_AUTH_ENABLE
来启用。
- 认证方法是Bearer令牌。可以在header中包含
Authorization: Bearer ***
进行认证。 - 令牌管理在API文档的token部分有描述。相关API需要使用管理员令牌进行认证,配置为
APP_AUTH_ADMIN_TOKEN
,默认为"admin"。 - 创建令牌时,需要提供大模型的基础URL和API密钥。创建的助手将使用相应的配置访问大模型。
工具集成
Open Assistant API允许根据OpenAPI/Swagger规范将各种工具集成到助手中,增强其与外部世界连接的能力。
- 便于将应用程序与其他系统或服务连接,实现与外部环境的交互,如代码执行或访问专有信息源。
- 使用时,需要先创建工具,然后可以将它们与助手集成。更多详细信息请参考测试用例:Assistant With Action
- 如果需要使用带有认证信息的工具,只需在运行时添加认证信息。具体参数格式可以在API文档中找到。更多详细信息请参考测试用例:Run With Auth Action
社区与支持
Open Assistant API拥有活跃的社区支持:
特别鸣谢
Open Assistant API的开发过程中参考和依赖了多个优秀的开源项目:
- OpenOpenAI: Node实现的Assistant API
- One API: 多模型管理工具
- R2R: RAG引擎
- OpenAI-Python: OpenAI Python客户端
- OpenAI API: OpenAI接口定义
- LangChain: LLM应用开发库
- OpenGPTs: LangChain GPTs
- TaskingAI: TaskingAI客户端SDK
贡献指南
Open Assistant API欢迎社区贡献。如果您想为项目做出贡献,请阅读贡献文档了解如何参与。
开源许可
Open Assistant API遵循MIT开源许可。更多信息请参见LICENSE文件。
结语
Open Assistant API为开发者提供了一个强大、灵活且开放的智能助手API框架。通过开源和自托管的方式,它不仅保护了数据隐私和安全,还为开发者提供了无限的定制和扩展可能。无论您是想构建一个简单的聊天机器人,还是复杂的AI驱动应用,Open Assistant API都能为您提供所需的工具和灵活性。
随着AI技术的不断发展,Open Assistant API也将持续evolve,为开发者社区带来更多创新和可能性。我们期待看到更多基于Open Assistant API构建的令人惊叹的AI应用,也欢迎更多开发者加入到这个开源项目中来,共同推动智能助手技术的发展。
立即开始使用Open Assistant API,探索AI应用开发的无限可能吧!🚀🤖