欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 基于AutoGen+Ollama+Litellm构建知识库问答系统

基于AutoGen+Ollama+Litellm构建知识库问答系统

2025/2/25 23:40:06 来源:https://blog.csdn.net/space01/article/details/142879473  浏览:    关键词:基于AutoGen+Ollama+Litellm构建知识库问答系统

目录

1 背景

1.1  AutoGen介绍

1.2 Ollama介绍

1.3 Litellm介绍

2 部署搭建

2.1 AutoGen + Ollama + Litellm环境搭建

2.2 基于AutoGen构建多智能体对话

2.3 基于AutoGen构建知识库问答系统


1 背景

之前已经基于Llama+LangChain构建了知识库问答系统。但是随着智能体的发展,基于智能体构建知识库问答系统逐渐成为主流。下面就以多智能体框架AutoGen、托管大型语言模型的平台Ollama、模型选择和切换工具Litellm为基础构建一个多智能体的知识库问答系统。同时搭建一个多智能体对话系统。

1.1  AutoGen介绍

Autogen是Microsoft开发的一个用于简化LLM工作流的编排、优化和自动化的框架。它提供了可定制和可交谈的代理,充分利用了大模型(比如GPT-4)的能力,并且可以集成人类智慧和工具,在多个代理之间可以实现自动化聊天。

如上图所示:AutoGen使用多智能体对话实现了复杂的基于LLM的工作流。(左)AutoGen代理可以定制,可以基于LLM、工具、人员,甚至是它们的组合。(右上角)代理可以通过对话解决任务。(右下角)该框架支持许多其他复杂的对话模式。

1.2 Ollama介绍

Ollama是一个开源的大型语言模型服务,提供了类似OpenAI的API接口和聊天界面,可以非常方便地部署最新版本的GPT模型并通过接口使用。支持热加载模型文件,无需重新启动即可切换不同的模型。

Ollama的优势:

  • 提供类似OpenAI的简单内容生成接口,极易上手使用
  • 类似ChatGPT的的聊天界面,无需开发直接与模型聊天
  • 支持热切换模型,灵活多变

1.3 Litellm介绍

LiteLLM是一个管理不同大型语言模型(LLM)API的工具。它可以将输入转化为各个提供商的完成、嵌入和图像生成终端,并提供一致的输出。LiteLLM还支持在多个部署之间进行重试和回退逻辑,例如Azure和OpenAI。它还可以支持流式传输模型响应,并提供日志观测功能。该库提供了一种统一的方式来调用所有 LLM APIs,使用 chatGPT 格式:completion(model, messages)。无论是哪家公司的 API,输出和异常都得到了一致的处理。

2 部署搭建

2.1 AutoGen + Ollama + Litellm环境搭建

  1. 1. 安装AutoGen

(1)创建一个autogen的虚拟环境

conda create -n pyautogen python=3.10

(2)激活虚拟环境

conda activate pyautogen

(3)安装autogen

pip install pyautogen

(4)安装litellm

pip install litellm

2. 安装ollama

curl -fsSL https://ollama.com/install.sh | sh

3. 使用ollama下载模型(ollama支持的模型查看https://ollama.com/library/)

(1)下载基础模型

        如千问模型Qwen1.5 - 4b

ollama run qwen

(2)下载代码垂直类模型

        如编码大模型codellama - 7b

ollama run codellama

          安装后会自动运行模型,然后按ctrl+d退出。

4. 使用litellm运行模型

(1)运行基础模型qwen

conda activate pyautogen
litellm --model ollama/qwen
litellm --model ollama/mistral

        启动后,其url为:http://0.0.0.0:8000,端口可能不同。

(2)运行编码大模型codellama

conda activate pyautogen
litellm --model ollama/codellama

        启动后,其url为:http://0.0.0.0:17068,端口可能不同。

2.2 基于AutoGen构建多智能体对话

  1. 1. 安装autogen stiduo 2
conda activate pyautogen
pip install autogenstudio

2. 启动auto studio

autogenstudio ui --host 0.0.0.0 --port 9081

3. 使用AutoGen Studio创建Agent工作流

   (1)在浏览器中打开192.168.1.10:9081

   (2)打开Build页面,在左侧点击Models,创新的模型。

        <1> 点击右上角的New Model按钮,输入信息创建新的模型:

                 Model Name:Qwen-4b

                 API-Key: NULL

                 Base URL: http://0.0.0.0:8000

       <2> 点击Test Model按钮,如果没有问题,会出现Moel tested successfully的信息。

       <3> 点击Save按钮。

  (3)同理创建Codellama-7b的新模型:

       <1> 点击右上角的New Model按钮,输入信息创建新的模型:

                 Model Name:Codellama-7b

                 API-Key: NULL

                 Base URL: http://0.0.0.0:17068

       <2> 点击Test Model按钮,如果没有问题,会出现Moel tested successfully的信息。

       <3> 点击Save按钮。

4. 创建Agents

    (1)在浏览器中打开192.168.1.10:9081

    (2)打开Build页面,在左侧点击Agents,创新的用户代理Agent。

        <1> 点击右上角的New Agent按钮,输入信息创建新的Agent:

                 Agent Name: user_proxy

                 Agent Description: user_proxy

                 Max Consecutive Auto Reply: 10

                 Agent Default Auto Reply:

                 Human Input Mode: NEVER

                 Model: Qwen-4b

    (3)打开Build页面,在左侧点击Agents,创新的代码助理Agent。

        <1> 点击右上角的New Agent按钮,输入信息创建新的Agent:

                 Agent Name: code_assistant

                 Agent Description: code_assistant

                 Max Consecutive Auto Reply: 10

                 Agent Default Auto Reply:

                 Human Input Mode: NEVER

                 Model: Codellama-7b            

5. 创建工作流

    (1)在浏览器中打开192.168.1.10:9081

    (2)打开Build页面,在左侧点击Workflows,创新的工作流。

            <1> 点击右上角的New Workflow按钮,输入信息创建新的Workflow:

               Workflow Name: Weather Agent Workflow

               Workflow Description: Weather Agent Workflow

           <2> 设置Sender

               在最下面的Or replace with an existing agent中选择user_proxy这个Agent。

          <3> 设置Receiver

                在最下面的Or replace with an existing agent中选择code_assistant这个Agent。

    (3)点击OK确认。

6. 启动一个agent任务

在Playground界面中,新建一个session,输入要agent执行的任务。

2.3 基于AutoGen构建知识库问答系统

1. 下载autogen-demos/AutoGen_RAG_Gradio3 at main · thinkall/autogen-demos · GitHub。

2. 安装依赖库

conda activate pyautogen
pip uninstall autogenstudio
pip3 install --no-cache-dir -r requirements.txt

主要autogenstudio用到的pyautogen的版本和此依赖库中的版本有冲突,需要先卸载autogenstudio,再安装依赖库。

2. 修改模型服务端口:

         将"api_base" 改为ollama启动的端口,即http://0.0.0.0:8000

3. 修改模型名称:

         "model"字段必须存在,这里可以写ollama启动的模型,如"qwen"。如果为空,则出错,默认是gpt-4。

4. 执行下面代码启动知识库系统

python app.py

5. 在浏览器中输入http://192.168.1.10:7860/即可开始上传文件,并进行知识问答。

6. 上传文件到知识库

         点击“Click to upload a context file or enter url in the right textbox”上传文件或在右侧框中输入网址。目前支持的上传文件格式有:[txt, json, csv, tsv, md, html, htm, rtf, rst, jsonl, log, xml, yaml, yml, pdf]。

7. 开始对话检索知识库信息

对于qwen模型,其prompt可以设置为:

qwen prompt:

"""请基于```内的内容回答问题。"```{context}```我的问题是:{question}。
"""

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词