返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

基于Cherry Studio auto-coder.RAG实现本地知识库

[复制链接]
链载Ai 显示全部楼层 发表于 5 小时前 |阅读模式 打印 上一主题 下一主题

基于 V3+R1随手构建图文并茂的问答知识库[1]中采用的是william-toolbox构建知识库,这里提供另一种种方法,使用Cherry Studio和Aut-coder.RAG搭建本地知识库,借助强大的LLM-Native的RAG系统,辅助源代码阅读,以及基于PDF文档构建知识库。

案例

使用auto-coder.rag阅读auto-coder的源代码

Prompt: 介绍下这个项目的结构,输出的结构可以用mermaid进行可视化(如下是mermaid语法)

graph TD
A[Auto-Coder项目] --> B[Common模块]
A --> C[PyProject/TSProject/SuffixProject]
A --> D[Dispacher模块]
A --> E[Action模块]
A --> F[Agent模块]
A --> G[Index模块]
A --> H[RAG模块]

B --> B1[Printer]
B --> B2[FileUtils]
B --> B3[GitUtils]

C --> C1[PyProject]
C --> C2[TSProject]
C --> C3[SuffixProject]

D --> D1[ActionTranslate]
D --> D2[ActionPyProject]
D --> D3[ActionTSProject]
D --> D4[ActionRegexProject]

E --> E1[CodeAutoMerge]
E --> E2[CodeAutoGenerate]

F --> F1[ProjectReader]
F --> F2[ReActAgent]
F --> F3[工具函数]

G --> G1[IndexManager]
G --> G2[SearchEngine]

H --> H1[RAGFactory]
H --> H2[文档检索]

截图展示的效果如下


主要模块说明:

  1. Common模块(autocoder/common/)

  • 包含基础工具类:
  • Printer:终端输出格式化
  • FileUtils:文件操作工具
  • GitUtils:Git仓库操作
  • 项目解析模块(autocoder/pyproject/,tsproject/,suffixproject/)

    • PyProject:处理Python项目结构
    • TSProject:处理TypeScript项目
    • SuffixProject:基于文件后缀处理项目
  • 调度模块(autocoder/dispacher/)

    • 包含多个Action实现:
    • ActionTranslate:翻译功能
    • ActionPyProject:Python项目处理
    • ActionRegexProject:正则匹配项目处理
  • 核心功能模块(autocoder/common/code_auto_*.py)

    • CodeAutoMerge:代码自动合并
    • CodeAutoGenerate:代码自动生成
  • 智能代理模块(autocoder/agent/)

    • 文件读取(read_files)
    • 代码执行(run_python_code)
    • ProjectReader:项目结构读取
    • ReActAgent:自主任务执行代理
    • 集成多种工具函数:
  • 索引模块(autocoder/index/)

    • IndexManager:索引管理
    • 支持多种搜索引擎集成
  • RAG模块(autocoder/rag/)

    • RAGFactory:检索增强生成
    • 支持文档检索增强

    各模块通过Dispacher进行协调,根据项目类型(py/ts/regex)选择对应的处理流程,最终通过Agent模块实现自动化操作。

    Prompt: 现阶段,auto-coder.rag server 如何处理PDF,会用到哪些函数?

    输出结果:内容较多,如下主要放跟mermaid有关的截图

    环境准备

    支持Windows,MacOS和Linux全平台。

    阅读本文档,我们还假设你了解如下基本知识

    • 能在windows,Linux和MacOS中打开终端
    • 能使用命令行进行conda的安装和环境管理

    本文的操作环境是Windows的Linux子系统,也就是WSL。

    Auto-Coder.RAG安装

    Auto-coder.Rag是auto-coder的一部分,最简单的安装方法如下

    pip install -U auto-coder

    但是,我一般用conda管理不同的python环境,所以我的安装方法如下

    conda create -n autocoder python=3.11
    conda activate autocoder
    pip install -U auto-coder

    如果你没有conda,建议到https://mirrors.tuna.tsinghua.edu.cn/ 获取安装包

    注:auto-coder的安装需要时间,如果你觉得速度不够快,可以设置镜像,如下是清华镜像的配置方案

    python -m pip install --upgrade pip
    pip configsetglobal.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

    Cherry Studio安装

    Cherry Studio是一个支持多服务商集成的AI对话客户端,详见我写的10分钟在本地接入DeepSeek-R1模型。简述如下:

    在https://cherry-ai.com/download下载,更新频率比较高,点击立刻下载就能下载到对应的 exe(Windows), dmg (MacOS)和AppImage(Linux)文件。

    安装之后打开的页面结构如下,后续用的最多的就是对话界面和配置页面。

    其他用法见官方文档,https://docs.cherry-ai.com/

    使用Auto-Coder.RAG配置后端知识库

    配置模型

    如果用的是conda,需要用conda activate autocoder启动环境后继续操作。 可以使用 威廉的工具箱进行全界面化配置:[auto-coder.RAG 搭配 V3+R1 组合]( "auto-coder.RAG 搭配 V3+R1 组合")。这里,我们采用命令行的方式配置模型和,选择多多益善,总有适合你的。

    在操作前,你需要先参考全新小白使用Auto-Coder进行AI辅助编程的上手操作指引[2]获取硅基流动或者是火山引擎的API,然后运行如下代码去配置LLM模型

    auto-coder.chat --lite

    后续启动的界面如下

    可以用/moldes /list查看当前配置的模型

    之后用/exit退出就可。

    启动后台知识库

    我以阅读auto-coder为例,我们需要拉去对应的代码,注意,下面的$HOME/project/native-rag-docs是我存放代码的路径,你可以替换成你自己的实际路径

    mkdir -p$HOME/project/native-rag-docs#这是我存代码的路径
    cd$HOME/project/native-rag-docs
    gitclonehttps://github.com/allwefantasy/auto-coder.git

    然后使用auto-coder.rag serve启动后台服务

    auto-coder.rag serve --lite --port 8102 \
    --doc_dir$HOME/project/native-rag-docs/auto-coder \
    --disable_inference_enhance --required_exts py,txt,md \
    --model v3_chat --qa_model r1_chat

    命令参数解释如下:

    1. --lite
    • 表示以精简模式运行,对应--product_mode=lite配置
    • 该模式下直接部署SaaS模型,不依赖Ray集群
  • --port 8102
    • 指定服务端口为8102(默认8000)
  • --doc_dir
    • 指定文档存储路径为$HOME/project/native-rag-docs/auto-coder
    • 该目录下的文件将用于构建RAG索引
  • --disable_inference_enhance
    • 禁用增强推理模式
    • 对应文档中ServerArgs.disable_inference_enhance参数
  • --required_exts py,txt,md
    • 限定只处理.py/.txt/.md三种格式的文件
    • 对应doc_build_parse_required_exts参数
  • --model v3_chat
    • 主模型使用deepseek_chat模型(文档中default_models_list定义)
  • --qa_model r1_chat
    • 问答模型使用deepseek_r1_chat模型(文档中default_models_list定义)
    • 该模型专用于推理任务

    Cherry Studio设置模型

    我们打开Cherry Studio,然后按照图中指引,添加一个新的模型服务商

    然后我们增加一个新的模型,按照如下填写API地址

    在Cherry Studio进行问答

    最后,到对话界面选择我们刚才添加的模型

    我一般会在对话中强调mermaid语法,例如 "介绍下这个项目的结构,输出的结构可以用mermaid进行可视化", 可以辅助我了解项目的结构

    这里的mermaid是一种语法,你看用复制到其他支持这个语法的编辑器中。

    PDF知识库搭建

    手动将PDF转成markdown,然后把里面的图片保存到图床上,接着你把md文件放到指定目录下,例如 $HOME/project/native-rag-docs/pdf (我目前方案是一种简单地实现AI图片并茂回答的方法)

    后续,跟上面的步骤类似,只不过操作前,你需要用ctrl+c退出(可能要按好几下),推荐用kill -9 $(lsof -ti :8102)确保8102端口不再被占用。

    修改 --doc_dir 和--required_ext 参数,其他可以不变。

    auto-coder.rag serve --lite --port 8102 \
    --doc_dir$HOME/project/native-rag-docs/pdfs \
    --disable_inference_enhance --required_exts md \
    --model v3_chat --qa_model r1_chat

    效果如下(注意,doc2x提供的图床有30天的时限,过期会删除,等待后续auto-coder的版本迭代,支持本地图床)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ