GraphRAG实战--graphrag+autogen+ollama+chainlit实现本地智能机器人

【GraphRAG】本地部署全流程!超详细介绍! graphrag本地部署 阅读详情

今天主要给大家分享另一个关于GraphRAG实战案例,通过结合graphrag、ollama、autogen、chainlit实现自己的智能机器人

img

RAG(retrieval-augmented generation )是一种在自然语言处理(NLP)领域中较为先进的技术方法。该技术通过将检索模型和生成模型结合在一起,提高了生成内容的相关性和质量,有效缓解了大型语言模型(如GPT系列)在生成文本时可能出现的“幻觉”(即生成不准确、不相关或虚构的信息);RAG的特性使得它成为了聊天机器人和虚拟助手等大模型应用程序的首选;而GraphRAG是RAG技术中比较新颖的一种策略,GraphRAG 从原始文本构建结构化知识图谱,捕获实体、关系和关键声明。这可以增强 LLMs 理解和合成复杂数据集及其关系的能力,从而产生更准确且基于上下文的响应。

img

AutoGen是一个由微软发布的强大框架,旨在帮助开发者创建基于大语言模型(LLM)的复杂应用程序。它特别擅长于通过多代理(智能体)的协作来解决问题,提供了高度的灵活性和定制性。

在这里插入图片描述

将 GraphRAG 的检索优势与 AutoGen AI 代理的对话和面向任务的功能相结合,可以产生强大的 AI 助手,能够有效地处理详细查询、生成和执行代码、创建多页科学报告以及进行数据分析,这是一个非常有价值的助手。

Chainlit是一个开源的Python库,专为简化对话式人工智能(Conversational AI)和代理型应用的开发而设计。它由Literal AI打造,旨在让开发者能够迅速搭建出生产级别的对话式AI应用。

Ollama是一个开源的、轻量级的框架,旨在为本地运行大型语言模型(LLM)提供简便易用的解决方案

以上是对这几个核心的组件的一些介绍,接下来我们进入今天的GraphRAG实战

1、安装模型、依赖等必要环境

ollama安装模型


# Mistral for GraphRAG Inference
ollama pull mistral

# Nomic-Embed-Text for GraphRAG Embedding
ollama pull nomic-embed-text

# LLama3 for Autogen Inference
ollama pull llama3

# Host Ollama on a local server: http://localhost:11434
ollama serve

安装conda环境及相关依赖

# Create and activate a conda environment
conda create -n RAG_agents python=3.12
conda activate RAG_agents

# Lite-LLM proxy server for Ollama
pip install 'litellm[proxy]'

# Install Ollama
pip install ollama

# Microsoft AutoGen
pip install pyautogen "pyautogen[retrievechat]" 

# Microsoft GraphRAG
pip install graphrag

# Text-Token Encoder-Decoder
pip install tiktoken

# Chainlit Python application
pip install chainlit

# Clone my Git-hub repository
git clone https://github.com/karthik-codex/autogen_graphRAG.git

# (BONUS) To Convert PDF files to Markdown for GraphRAG 
pip install marker-pdf

# (BONUS) Only if you installed Marker-pdf since it removes GPU CUDA support by default
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

2、配置 GraphRAG 设置以支持来自 Ollama 的本地模型

主要还是在setting.yaml文件中进行模型配置

encoding_model: cl100k_base
skip_workflows: []
llm:
  api_key: ${GRAPHRAG_API_KEY}
  type: openai_chat # or azure_openai_chat
  model: mistral
  model_supports_json: true
  api_base: http://localhost:11434/v1 
.
.
.
embeddings:
  async_mode: threaded # or asyncio
  llm:
    api_key: ${GRAPHRAG_API_KEY}
    type: openai_embedding # or azure_openai_embedding
    model: nomic_embed_text
    api_base: http://localhost:11434/api 
.
.
.
input:  #Change input file pattern to.md, or .txt
  type: file # or blob
  file_type: text # or csv
  base_dir: "input"
  file_encoding: utf-8
  file_pattern: ".*\\.md$"

3、创建GraphRAG知识图谱

具体可以参考GraphRag安装部署及简单测试

# Create knowledge graph - this takes some time
python -m graphrag.index --root .

# Test GraphRAG
python -m graphrag.query --root . --method global "<insert your query>"

4、启动lite-llm服务器

# start server from terminal
litellm --model ollama_chat/llama3

# run app from another terminal
chainlit run appUI.py

本地测试时,我选用的开源模型是llama3-8b

5、配置Autogen代理

AutoGen 代理通过 Lite-LLM 代理服务器使用 Ollama 的模型。因为 AutoGen 不支持通过非 OpenAI 推理模型调用函数。代理服务器使得使用 Ollama 模型进行函数调用和代码执行成为可能。

# LLama3 LLM from Lite-LLM Server for Agents #
llm_config_autogen = {
    "seed": 40,  # change the seed for different trials
    "temperature": 0,
    "config_list": [{"model": "litellm", 
                     "base_url": "http://0.0.0.0:4000/", 
                     'api_key': 'ollama'},
    ],
    "timeout": 60000,
}

6、Chainlit相关配置

我创建了三个 Chainlit 小部件(开关、选择和滑块),作为用户设置来选择 GraphRAG 搜索类型、社区级别和内容生成类型。当打开开关小部件时,使用 GraphRAG 本地搜索方法进行查询。内容生成的选择选项包括“优先列表”、“单段落”、“多段落”和“多页报告”。滑块小部件可以选择社区生成级别,选项有 0、1 和 2。

@cl.on_chat_start
async def on_chat_start():
  try:
    settings = await cl.ChatSettings(
            [      
                Switch(id="Search_type", label="(GraphRAG) Local Search", initial=True),       
                Select(
                    id="Gen_type",
                    label="(GraphRAG) Content Type",
                    values=["prioritized list", "single paragraph", "multiple paragraphs", "multiple-page report"],
                    initial_index=1,
                ),          
                Slider(
                    id="Community",
                    label="(GraphRAG) Community Level",
                    initial=0,
                    min=0,
                    max=2,
                    step=1,
                ),

            ]
        ).send()

    response_type = settings["Gen_type"]
    community = settings["Community"]
    local_search = settings["Search_type"]
    
    cl.user_session.set("Gen_type", response_type)
    cl.user_session.set("Community", community)
    cl.user_session.set("Search_type", local_search)

    retriever   = AssistantAgent(
       name="Retriever", 
       llm_config=llm_config_autogen, 
       system_message="""Only execute the function query_graphRAG to look for context. 
                    Output 'TERMINATE' when an answer has been provided.""",
       max_consecutive_auto_reply=1,
       human_input_mode="NEVER", 
       description="Retriever Agent"
    )

    user_proxy = ChainlitUserProxyAgent(
        name="User_Proxy",
        human_input_mode="ALWAYS",
        llm_config=llm_config_autogen,
        is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
        code_execution_config=False,
        system_message='''A human admin. Interact with the retriever to provide any context''',
        description="User Proxy Agent"
    )
    
    print("Set agents.")

    cl.user_session.set("Query Agent", user_proxy)
    cl.user_session.set("Retriever", retriever)

    msg = cl.Message(content=f"""Hello! What task would you like to get done today?      
                     """, 
                     author="User_Proxy")
    await msg.send()

    print("Message sent.")
    
  except Exception as e:
    print("Error: ", e)
    pass

其它完整代码请参考:https://github.com/karthik-codex/Autogen_GraphRAG_Ollama

大模型结合Agent和RAG(Retrieval-Augmented Generation,检索增强生成)是一种先进的人工智能技术组合,旨在提升模型在处理复杂任务时的准确性、可靠性和效率。它的应用场景也很广泛,比如知识问答、内容创作、客服场景等等,总之,大模型结合Agent和RAG的技术组合为人工智能领域带来了新的发展机遇和挑战。随着技术的不断进步和应用场景的拓展,这一组合将在更多领域发挥重要作用。

​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

下面这些都是我当初辛苦整理和花钱购买的资料,现在我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

本地电脑大模型系列之 11 微软的 GraphRAG + AutoGen + Ollama + Chainlit = 完全本地多智能体 RAG 超级机器人(教程含源码) 这是我第一次涉足 AI 代理、LLM 和 RAG,过去几周我直接开始创建此实现,绕过了很多基础知识。虽然此实现并不完美,但它是开发更复杂应用程序的绝佳模板。它为集成多个功能和编码代理奠定了坚实的基础,并使您能够构建复杂的工作流程、自定义代理交互并根据需要增强功能。 阅读详情

相关推荐

Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用

LlamaIndex是一个数据框架,它主要为基于大语言模型(LLM)的应用程序设计,允许这些应用程序摄取、结构化并访问私有或特定领域的数据。这种框架对于那些希望利用LLM的强大能力来处理自身专属数据集的组织来说尤其有用。由于大多数公开的大语言模型都是在大量的公共数据上训练的,它们缺乏对用户特定数据的理解,而这正是LlamaIndex发挥作用的地方。LlamaIndex支持Python和TypeScript,使得开发者可以通过使用这些编程语言来集成和操作数据。

洛阳泰山的博客 2021

表现力丰富的肖像动画框架;结合本地LLM和GraphRAG的多代理RAG超级机器人;支持向量和图路径查询RAG;

Pydfy 是一个简化 PDF 报告生成的工具,它旨在让创建漂亮的 PDF 报告变得非常简单。Pydfy 解决了生成 PDF 报告过程中常见的一些问题,例如团队成员不熟悉 LaTeX、BI 工具的支持不足、网页通常不适合导出为 PDF 以及复杂的 PDF 生成器难以在短时间内输出结果等。AutoGen_GraphRAG_Ollama 是一个集成了 GraphRAG、AutoGen 代理和本地 LLM 模型(由 Ollama 提供)的多代理检索增强生成 (RAG) 超级机器人。

haleycat的博客 1281

【爆火大模型应用】本地多代理 RAG 超级机器人

这个系统结合了四个强大的组件,构建了一个基于本地推理的多代理 RAG(Retriever-augmented Generation)超级机器人。

源代码杀手的博客 180

​微软的 GraphRAG AutoGen Ollama Chainlit 完全本地的多智能体 RAG 超级机器人

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

m0_56255097的博客 1790

彻底解决Win11 Android模拟器驱动权限问题:手动修改silent_install.bat的保姆级教程

本文提供了一份详细的Win11 Android模拟器驱动权限问题解决方案,重点介绍了手动修改silent_install.bat脚本的两种方法。通过分析问题根源并给出具体代码修改方案,帮助开发者彻底解决Android Studio在Windows 11上安装时遇到的UAC循环弹窗问题,确保android-emulator-hypervisor-driver顺利安装。

dengliugong3918的博客 453

记一次从零到getshell的渗透历程

0x00 前期 拿到测试范围清单后,首先用脚本获取了下各个子站的标题,基本都是XXX管理系统。浏览器查看后,各个子站也大同小异,纯登录系统,带验证码。这些系统基本都是jsp写的,逮到了两个没有验证码的小宝贝,一番暴力破解,小宝贝对我说:别爱我,没结果。又看到了两个站返回的Set-Cookie头:rememberMe=deleteMe; 很明显,这是Apache Shiro。打了一波exp,没有反应,放弃。搞了三天啥都没搞出来,和女朋友出去玩散散心,还是很高兴。 0x01 初显进展 测试范围内有六个门户

CanMeng'Blog - 一个WEB安全渗透的技术爱好者 3959

GraphRAG + AutoGen + Ollama + Chainlit = 本地和免费的多代理 RAG 超级机器人

这是我第一次涉足 AI 代理、LLM 和 RAG,在过去的几周里,我绕过了许多基础知识,直接投入到创建这个实现中。虽然这种实现并不完美,但它是开发更复杂应用程序的绝佳模板。它为集成多个功能和编码代理奠定了坚实的基础,应该使您能够构建复杂的工作流程、自定义代理交互并根据需要增强功能。

Python_cocola的博客 2029

cs188Inference in Bayes Nets(贝叶斯网络的推理)

cs188Inference in Bayes Nets贝叶斯网络的推理Question1(3 points):Bayes Net StructureQuestion2(1 points):Bayes Net ProbabilitiesQuestion 3(5 points):Join FactorsQuestion4(4 points):EliminateQuestion5(4 points):NormalizeQuestion 6(4 points):Variable EliminationQuesti

weixin_46582817的博客 1666

微软的 GraphRAG + AutoGen + Ollama + Chainlit = 本地和免费的多代理 RAG 超级机器人

集成和关键组件的图形摘要R检索增强生成 (RAG) 是一种功能强大的工具,它使大型语言模型 (LLM) 能够访问现实世界的数据,从而做出更明智的响应。这是通过将模型与矢量数据库集成以进行实时学习和适应来实现的。此功能使 RAG 成为聊天机器人和虚拟助手等应用程序的首选,这些应用程序对实时准确且合理的响应需求很高。这种技术的高级变体称为图形检索增强生成 (GraphRAG),它将基于图形的知识检索的优势与 LLM 相结合,进一步增强了自然语言处理的能力。

m0_59235245的博客 1462

ANSYS材料库实战:手把手教你用APDL命令流定义混凝土和形状记忆合金

本文详细介绍了在ANSYS中使用APDL命令流定义混凝土和形状记忆合金(SMA)的高级建模技巧。通过SOLID65单元和SMA本构模型,工程师可以精确模拟非线性材料行为,包括混凝土的开裂和SMA的超弹性效应。文章提供了完整的命令流示例和求解策略优化建议,帮助用户提升工程仿真效率。

hh234的博客 478

国社科基金申报书“选题与说明依据”用AI怎么写?借助Gemini 3 Pro一次理清研究演进逻辑

研究进展部分要明确指出已有研究的不足与局限,比如方法不足、数据或材料受限、研究视角单一等等局限,之后要找准研究切入点,自然引申出自己的研究问题。为提升课题申报书的质量,学术史梳理要遵循述评结合、中外结合、新老结合的原则,不仅“述”,更要“评”,兼顾国内研究与国际学术动态,统筹经典研究与最新成果。它是对选题的整体概述,需阐明研究的具体问题、视角以及核心概念。2)存在问题或争议:结合已有研究或实践现状,指出该领域在理论建构、测量工具、实践应用或研究结论方面仍存在的不足、空白或争议,明确研究的必要性;

智能AI让学术科研更容易 934

用 AI 助力大规模代码库分析,一文详解我们团队的探索成果

软件开发领域,大规模代码库的理解是一项极具挑战性的任务。随着大语言模型的兴起,我们提出了一种新的解决方案。

limingyu_cn的博客 2537

什么是 AIDV(AI 定义汽车):从软件定义到智能决策的范式革命

AI定义汽车(AIDV),是指以人工智能(尤其是大模型、深度学习、强化学习)为核心引擎,以车载AI芯片为算力底座,以“数据闭环”为迭代支撑,重构汽车感知、决策、执行全链路,实现“感知智能化、决策自主化、体验个性化、迭代自动化”的新一代智能汽车发展范式。其核心是让汽车从“执行工具”升级为“具备自主学习与智能决策能力的移动智能终端”,核心价值是“车与人的深度协同”与“复杂场景的自主适配”。

getusushu的博客 91

GraphRAG:终极 RAG 引擎 - 语义搜索、嵌入、矢量搜索等等!

GraphRAG 是一个旨在利用大语言模型(LLMs)从非结构化文本中提取结构化数据的数据处理工具套件。要了解更多关于 GraphRAG 及其如何增强 LLM 处理私有数据能力的信息,请访问 微软研究博客文章.

m0_59235245的博客 1322

NVIDIA Isaac GR00T N1.5 人形机器人强化学习入门教程(四)Lerobot、宇树 G1 等不同形态机器人微调教程

本笔记本是一份关于如何在新的数据集上对GR00T-N1预训练模型进行微调的教程。

2506_90492529的博客 1663

【数据集】1970-2023年全球温室气体排放 GHG 数据集 EDGAR

1970-2023年全球温室气体排放 GHG 数据集 EDGAR

WW、forever的博客 1166

【GraphRAG+Ollama】 本地部署

Ollama配置教程 官网配置GraphRAG+Ollama教程 配置中问题解决

qq_52529447的博客 263

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AutoGen入门——快速实现多角色、多用户、多智能体对话系统

autogen是一多智能体的框架,属于微软旗下的产品。依靠我们可以快速构建出一个多智能体应用,以满足我们各种业务场景。本文将以几个示例场景,使用AutoGen快速构建出多智能体应用,一起体验下它的具体用法。

水中加点糖 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

使用微软的 GraphRAG + AutoGen + Ollama + Chainlit 来打造一个完全本地且免费的多代理RAG超级机器人

微软整合了 GraphRAG、AutoGen、Ollama 和 Chainlit 技术,打造出强大的多智能体 RAG(检索增强生成)超级机器人,无需依赖在线 LLM,即可进行复杂、基于情境的响应和本地数据处理。

2301_81940605的博客 1215

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

code-graph-rag:智能代码分析的新选择

在现代软件开发中,代码库的复杂度不断攀升,管理起来变得越来越困难。如何有效理解和查询代码库的结构与关系,成为了许多开发者的痛点。今天,我们要介绍的这款开源项目——code-graph-rag,正是为了解决这一问题而生。 ## 项目介绍 code-graph-rag 是一个基于图论的检索增强生成(Retrieval-Augmented Generation, RAG)系统,专门为 Python ...

gitblog_01178的博客 1085

Chainlit vs Streamlit和Gradio:为什么Chainlit是开发聊天机器人不错的选择

随着大语言模型(LLM)的快速发展,国内外越来越多的大模型蜂拥而至,真可谓是百花齐放,相当热闹的掀起了一次百模大战,甚至是千模大战。然而,面对这么多的大模型,个个都声称占据排行榜第一,到底实际效果如何,最终还得需要花大量时间去进行验证,有没有比较简单快速的方式来实现模型的快速体验呢。目前关于这方面比较成熟的方案包括 Streamlit、Gradio 等Web UI框架,基本上想要实现 ChatGPT/Claude 类似的聊天机器人或者文档机器人,只需要很少量的代码就可以实现。

FrenzyTechAI的博客 5942

AutoGen+Deepseek+chainlit的简单使用

AutoGen 是一个多智能体协作框架,适用于自动化工作流、复杂问题分解、工具集成、人机协作及教育培训等场景。通过配置 DeepSeek 模型,用户可以在 AutoGen 中实现智能体协作。配置步骤包括设置 API 端点、认证信息及模型参数,并可通过函数调用扩展智能体功能。示例代码展示了如何创建不同角色的智能体(如研究员、分析师、撰写人)并启动协作流程。关键配置包括 API 参数、模型参数及函数调用设置。使用过程中需注意 API 权限、调用频率限制及隐私保护。通过合理配置,AutoGen 可有效解决从简单问

领创工作室的博客 1592

解决 AI 幻觉:AutoGen 与 GraphRAG 如何重塑可靠 AI

在这篇文章中,我们将剖析两种前沿解决方案——AutoGen和GraphRAG,它们能够减少这类错误,让你的人工智能更加可靠。

2301_81888214的博客 1113

告别复杂界面开发:AutoGen+Chainlit 5分钟搭建智能聊天应用

你是否还在为AI应用的界面开发头疼?想让你的AutoGen智能体拥有直观的交互界面,却被前端代码劝退?本文将带你用Chainlit框架,零前端经验也能快速搭建专业级聊天界面,让你的AI模型即刻可用。 读完本文你将学会: - 3步完成AutoGen与Chainlit的集成 - 实现单智能体和多智能体团队的可视化交互 - 添加流式消息展示提升用户体验 - 部署可直接交付的AI聊天应用 ## 为什么...

gitblog_01138的博客 1128

GraphRAG:知识图谱+大模型案例实战

微软研究的新方法GraphRAG使用LLM基于输入语料库创建知识图谱。该图谱与社区摘要和图谱机器学习输出一起在查询时用于增强提示。GraphRAG在回答上述两类问题时显示出显著的改进,展示了比以前应用于私有数据集的方法更高的智能的掌握能力。本地搜索方法通过将 AI 提取的知识图谱中的相关数据与原始文档的文本块相结合来生成答案。这种方法适用于需要了解文档中提到的特定实体的问题(例如,洋甘菊的治疗特性是什么?引入相关库。

程序员鑫港的博客 1649
上一篇: AI大模型实现OCR识别验证码
下一篇: 喂饭教程!全网首发对小白友好的GraphRAG查询流程全揭秘
爱喝白开水a
博客等级 码龄2年 6793粉丝 763原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值