TaskingAI
扫码查看

用于开发和部署AI原生应用的开源平台

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以上版本)

安装流程

  1. 克隆代码仓库首先,使用git命令从GitHub上克隆TaskingAI(社区版)的源代码到你的本地电脑。
    git clone https://github.com/taskingai/taskingai.git
    
  2. 进入Docker目录使用cd命令进入刚刚克隆的taskingai项目文件夹,并切换到docker子目录。
    cd taskingai/docker
    
  3. 创建环境变量文件docker目录下有一个名为.env.example的环境变量示例文件。你需要复制一份并将其重命名为.env。这个文件包含了服务运行所需的配置信息。
    cp .env.example .env
    
  4. 编辑环境变量(可选)你可以使用文本编辑器打开.env文件,根据需要修改其中的配置。对于初次体验的用户,通常可以直接使用默认配置。
  5. 启动服务执行以下命令,Docker Compose会自动拉取镜像并启动TaskingAI所需的所有服务。-p taskingai参数为容器指定了项目名,方便管理。
    docker-compose -p taskingai --env-file .env up -d
    

    当命令执行完毕后,TaskingAI的服务就成功在后台运行了。

  6. 访问控制台打开你的浏览器,访问 http://localhost:8080。你会看到TaskingAI的登录界面。
    • 默认用户名admin
    • 默认密码TaskingAI321

功能操作流程

TaskingAI的核心操作逻辑是在其UI控制台或通过SDK完成对模型知识库工具等资源的创建和管理,然后将这些资源组合起来创建一个助手(Assistant),最后通过对话(Chat)与这个助手进行交互。

1. 在UI控制台创建资源

登录UI控制台后,你会看到左侧导航栏有AssistantsChatModelsRetrievalsTools等菜单。

  • 创建模型 (Model):
    • 进入 Models 页面,点击“创建”。
    • 选择一个模型提供商,例如 OpenAI
    • 填入你的 API Key 并选择一个具体的模型ID,例如 gpt-4o
    • 保存后,你就拥有了一个可在平台内使用的模型资源。
  • 创建知识库 (Retrieval):
    • 进入 Retrievals 页面,点击“创建”。
    • 选择一个向量化(Embedding)模型。
    • 你可以上传文档(如PDF、TXT文件)作为知识库的数据源,平台会自动处理和向量化这些文档。
  • 创建工具 (Tool):
    • 进入 Tools 页面,你可以使用平台内置的工具,也可以创建自定义工具。
    • 创建自定义工具时,你需要定义工具的schema(符合OpenAPI规范的JSON),描述工具的功能、参数和返回值。

2. 创建和使用助手 (Assistant)

  1. 创建助手:
    • 进入 Assistants 页面,点击“创建”。
    • 为你的助手指定一个模型ID(即上一步创建的模型)。
    • 你还可以为它配置记忆(Memory)类型,naive模式会保留完整的对话历史。
    • 在高级设置中,你可以为助手绑定之前创建的知识库工具
  2. 与助手聊天:
    • 创建助手后,系统会自动为你创建一个对话(Chat)实例。
    • 你可以直接在UI界面的聊天窗口中输入问题,测试助手的回答。如果助手绑定了工具,它会在需要时自动调用工具来回答问题。

3. 使用Python SDK与服务交互

当你在UI控制台配置好一切后,就可以在你的应用程序代码中通过SDK来调用TaskingAI的能力。

  1. 安装SDK:
    pip install taskingai
    
  2. 编写客户端代码:首先,你需要在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能力的产品。

应用场景

  1. 企业级AI生产力工具企业可以将内部的知识库、API等资源通过TaskingAI的知识库和工具模块进行集成,构建一个了解企业内部信息的“超级员工”。例如,开发一个可以回答HR政策、查询销售数据或自动生成周报的内部AI助手,提升员工的工作效率。
  2. 多租户AI原生SaaS应用对于希望开发面向多客户的AI软件服务(SaaS)的初创公司或开发者,TaskingAI的多租户特性提供了完美的底层支持。开发者可以为每个租户(客户)创建独立的AI智能体和数据空间,但共享同一套后端服务,从而大大降低开发和运维成本。
  3. 交互式应用Demo快速原型当有一个关于AI应用的创新想法时,开发者可以利用TaskingAI的UI控制台和模块化功能,在几小时内快速搭建出一个可交互的原型(Demo)进行验证。例如,快速构建一个能根据用户指令画画或写诗的AI应用,而不需要从零开始编写复杂的后端逻辑。

QA

  1. TaskingAI和LangChain有什么区别?LangChain是一个用于开发大语言模型应用的工具框架,它更像是一个“库”的集合,本身是无状态的,需要开发者自己解决数据管理和扩展性问题。而TaskingAI是一个功能更完整的“平台”,它提供了有状态的服务、统一的资源管理界面和一键部署能力,将AI应用的后端逻辑打包成一个开箱即用的服务,解决了LangChain在实际生产应用中面临的工程化难题。
  2. 使用TaskingAI是否必须绑定OpenAI的模型?不是。TaskingAI的一个核心优势就是开放性。它不仅支持OpenAI,还支持Anthropic、Google等多种模型提供商,更重要的是,它允许用户通过Ollama或LM Studio等工具接入本地部署的开源模型。这使得开发者可以根据成本、性能和数据隐私等需求,灵活选择最合适的模型。
  3. 非程序员可以使用TaskingAI吗?可以,但主要用于原型设计和测试。非程序员可以通过TaskingAI直观的UI控制台,上传文档创建知识库,或者配置助手并进行对话测试,这个过程几乎不需要编写代码。但是,要将TaskingAI的能力集成到实际的网站或应用程序中,最终还是需要程序员使用其提供的SDK或API进行开发。
微信微博Email复制链接