TaskingAI
综合介绍
TaskingAI 是一个为AI原生应用开发设计的开源BaaS(后端即服务)平台。它统一了数百种大语言模型(LLM)的接口,让开发者可以方便地切换和使用不同的模型。平台提供了一个直观的用户界面,用于管理AI应用的核心功能模块,包括工具(Tools)、模型(Models)、检索增强生成(RAG)、助手(Assistants)和记忆(Memory)等。它的设计思路是将AI应用的业务逻辑(在服务端)与产品开发(在客户端)分离,开发者可以通过RESTful API和客户端SDK,将原型快速转化为可扩展的生产级应用。TaskingAI解决了现有工具(如LangChain)在有状态服务和可扩展性方面的不足,同时也避免了对特定模型提供商(如OpenAI)的过度依赖,为开发者提供了更高的灵活性和可定制性。
功能列表
- 统一模型管理: 提供统一的API,支持接入和管理数百种AI模型,包括OpenAI、Anthropic等商业模型,以及通过Ollama、LM Studio等部署的本地模型。
- 模块化设计: 将工具、RAG、模型、助手等功能解耦,开发者可以像搭积木一样自由组合这些模块来构建强大的AI智能体。
- 状态化与无状态支持: 同时支持需要记录和管理对话历史的有状态服务,以及简单的无状态聊天请求,满足不同场景的需求。
- 丰富的工具插件: 内置了谷歌搜索、网页阅读、股票查询等多种实用工具,并支持用户根据特定需求创建自定义工具。
- 一键生产部署: 开发者在控制台完成开发和测试后,可以一键将AI智能体部署到生产环境,平台会自动处理后续的扩展和运维。
- 多租户支持: 原生支持多租户应用场景,开发者无需担心底层架构,可以专注于AI智能体的开发。
- 直观的UI控制台: 提供图形化管理界面,简化了项目管理和工作流测试的复杂度,开发者可以在控制台中完成大部分配置和调试工作。
- 异步高性能: 后端基于Python FastAPI构建,利用其异步特性实现高并发和高性能计算,确保应用的响应速度和可扩展性。
使用帮助
TaskingAI 设计为一个自托管的后端服务,最简单的启动方式是通过Docker进行部署。
环境准备
在开始安装前,请确保你的电脑上已经安装了以下软件:
Docker
和Docker Compose
Git
Python
(3.8以上版本)
安装流程
- 克隆代码仓库首先,使用
git
命令从GitHub上克隆TaskingAI(社区版)的源代码到你的本地电脑。git clone https://github.com/taskingai/taskingai.git
- 进入Docker目录使用
cd
命令进入刚刚克隆的taskingai
项目文件夹,并切换到docker
子目录。cd taskingai/docker
- 创建环境变量文件
docker
目录下有一个名为.env.example
的环境变量示例文件。你需要复制一份并将其重命名为.env
。这个文件包含了服务运行所需的配置信息。cp .env.example .env
- 编辑环境变量(可选)你可以使用文本编辑器打开
.env
文件,根据需要修改其中的配置。对于初次体验的用户,通常可以直接使用默认配置。 - 启动服务执行以下命令,Docker Compose会自动拉取镜像并启动TaskingAI所需的所有服务。
-p taskingai
参数为容器指定了项目名,方便管理。docker-compose -p taskingai --env-file .env up -d
当命令执行完毕后,TaskingAI的服务就成功在后台运行了。
- 访问控制台打开你的浏览器,访问
http://localhost:8080
。你会看到TaskingAI的登录界面。- 默认用户名:
admin
- 默认密码:
TaskingAI321
- 默认用户名:
功能操作流程
TaskingAI的核心操作逻辑是在其UI控制台或通过SDK完成对模型
、知识库
、工具
等资源的创建和管理,然后将这些资源组合起来创建一个助手(Assistant)
,最后通过对话(Chat)
与这个助手进行交互。
1. 在UI控制台创建资源
登录UI控制台后,你会看到左侧导航栏有Assistants
, Chat
, Models
, Retrievals
, Tools
等菜单。
- 创建模型 (Model):
- 进入
Models
页面,点击“创建”。 - 选择一个模型提供商,例如
OpenAI
。 - 填入你的
API Key
并选择一个具体的模型ID,例如gpt-4o
。 - 保存后,你就拥有了一个可在平台内使用的模型资源。
- 进入
- 创建知识库 (Retrieval):
- 进入
Retrievals
页面,点击“创建”。 - 选择一个向量化(Embedding)模型。
- 你可以上传文档(如PDF、TXT文件)作为知识库的数据源,平台会自动处理和向量化这些文档。
- 进入
- 创建工具 (Tool):
- 进入
Tools
页面,你可以使用平台内置的工具,也可以创建自定义工具。 - 创建自定义工具时,你需要定义工具的
schema
(符合OpenAPI规范的JSON),描述工具的功能、参数和返回值。
- 进入
2. 创建和使用助手 (Assistant)
- 创建助手:
- 进入
Assistants
页面,点击“创建”。 - 为你的助手指定一个
模型ID
(即上一步创建的模型)。 - 你还可以为它配置
记忆(Memory)
类型,naive
模式会保留完整的对话历史。 - 在高级设置中,你可以为助手绑定之前创建的
知识库
和工具
。
- 进入
- 与助手聊天:
- 创建助手后,系统会自动为你创建一个
对话(Chat)
实例。 - 你可以直接在UI界面的聊天窗口中输入问题,测试助手的回答。如果助手绑定了工具,它会在需要时自动调用工具来回答问题。
- 创建助手后,系统会自动为你创建一个
3. 使用Python SDK与服务交互
当你在UI控制台配置好一切后,就可以在你的应用程序代码中通过SDK来调用TaskingAI的能力。
- 安装SDK:
pip install taskingai
- 编写客户端代码:首先,你需要在UI控制台的
设置
中创建一个API密钥。然后在代码中初始化SDK。import taskingai # 初始化SDK,指向你本地部署的服务地址 # API Key需要从UI控制台的设置页面创建 taskingai.init(api_key='YOUR_API_KEY', host='http://localhost:8080') # 使用你已经在UI控制台创建好的助手ID assistant_id = "YOUR_ASSISTANT_ID" # 为这个助手创建一个新的对话 chat = taskingai.assistant.create_chat( assistant_id=assistant_id, ) chat_id = chat.chat_id # 向指定对话发送一条用户消息 user_message = taskingai.assistant.create_message( assistant_id=assistant_id, chat_id=chat_id, text="你好,你会做什么?", ) print(f"用户: {user_message.content.text}") # 生成助手的回复 # stream=True可以实现流式输出 assistant_response = taskingai.assistant.generate_message( assistant_id=assistant_id, chat_id=chat_id, stream=False ) print(f"助手: {assistant_response.content.text}")
通过这种方式,你可以将TaskingAI作为应用后端,快速构建具备强大AI能力的产品。
应用场景
- 企业级AI生产力工具企业可以将内部的知识库、API等资源通过TaskingAI的知识库和工具模块进行集成,构建一个了解企业内部信息的“超级员工”。例如,开发一个可以回答HR政策、查询销售数据或自动生成周报的内部AI助手,提升员工的工作效率。
- 多租户AI原生SaaS应用对于希望开发面向多客户的AI软件服务(SaaS)的初创公司或开发者,TaskingAI的多租户特性提供了完美的底层支持。开发者可以为每个租户(客户)创建独立的AI智能体和数据空间,但共享同一套后端服务,从而大大降低开发和运维成本。
- 交互式应用Demo快速原型当有一个关于AI应用的创新想法时,开发者可以利用TaskingAI的UI控制台和模块化功能,在几小时内快速搭建出一个可交互的原型(Demo)进行验证。例如,快速构建一个能根据用户指令画画或写诗的AI应用,而不需要从零开始编写复杂的后端逻辑。
QA
- TaskingAI和LangChain有什么区别?LangChain是一个用于开发大语言模型应用的工具框架,它更像是一个“库”的集合,本身是无状态的,需要开发者自己解决数据管理和扩展性问题。而TaskingAI是一个功能更完整的“平台”,它提供了有状态的服务、统一的资源管理界面和一键部署能力,将AI应用的后端逻辑打包成一个开箱即用的服务,解决了LangChain在实际生产应用中面临的工程化难题。
- 使用TaskingAI是否必须绑定OpenAI的模型?不是。TaskingAI的一个核心优势就是开放性。它不仅支持OpenAI,还支持Anthropic、Google等多种模型提供商,更重要的是,它允许用户通过Ollama或LM Studio等工具接入本地部署的开源模型。这使得开发者可以根据成本、性能和数据隐私等需求,灵活选择最合适的模型。
- 非程序员可以使用TaskingAI吗?可以,但主要用于原型设计和测试。非程序员可以通过TaskingAI直观的UI控制台,上传文档创建知识库,或者配置助手并进行对话测试,这个过程几乎不需要编写代码。但是,要将TaskingAI的能力集成到实际的网站或应用程序中,最终还是需要程序员使用其提供的SDK或API进行开发。