020- 使用AutoCoder本地快速构建程序员专有知识库

本文介绍了如何使用AutoCoder构建一个内容知识库,包括安装步骤、模型部署(如Qwen和GPT)以及文档构建和索引,以便于通过问答助手查询和自动执行相关脚本。
摘要由CSDN通过智能技术生成

背景

我现在有两类内容,一个是大量的 auto-coder 示例配置,每次我用的时候都需要去找示例,然后复制黏贴。

c97f36cb26343d74c36e492dfbc6c5a3.jpeg

第二类是各种启动模型的脚本:

f80305a2b9d07fef5b3120aa2aba2f92.jpeg

需要关闭或者开启一个模型,都需要查找然后复制黏贴,比较麻烦。

这个时候,我就在想如何把这些内容构建成知识库,让问答小助手帮到自己,甚至小助手还可以直接帮我执行一些脚本。于是有了 AutoCoder 的文档功能。

安装

conda create --name autocoder python=3.10.11
conda activate autocoder

pip install -U auto-coder
ray start --head

最后一步是启动一个 daemon 管理进程。

接着,因为知识库需要存储(向量检索+全文检索),所以我们还需要安装一个Stroage。安装也很简单:

# export JAVA_HOME=/Users/allwefantasy/Library/Java/JavaVirtualMachines/openjdk-21/Contents/Home
byzerllm storage start

注意,你系统需要装有 JDK21。如果JDK21不是你默认 SDK,可以在启动命令前临时export JAVA_HOME。系统会在启动期间下载一些库和文件,请确保网络畅通。

这就是所有安装部署了。

准备模型

文档构建需要依赖大模型和embedding模型。所以我们用 byzerllm 命令启动他们。

qianwen_chat:

byzerllm deploy --pretrained_model_type saas/qianwen \
--cpus_per_worker 0.001 \
--gpus_per_worker 0 \
--num_workers 2 \
--infer_params saas.api_key=${MODEL_QIANWEN_TOKEN}  saas.model=qwen-max \
--model qianwen_chat

qianwen_emb:

byzerllm deploy --pretrained_model_type saas/qianwen \
--cpus_per_worker 0.001 \
--gpus_per_worker 0 \
--num_workers 2 \
--infer_params saas.api_key=${MODEL_QIANWEN_TOKEN}  saas.model=text-embedding-v2 \
--model qianwen_emb

如果你用 OpenAI,可以这样:

gpt3_5_chat:

byzerllm deploy --pretrained_model_type saas/openai \
--cpus_per_worker 0.001 \
--gpus_per_worker 0 \
--num_workers 1 \
--infer_params saas.api_key=${MODEL_OPENAI_TOKEN} saas.model=gpt-3.5-turbo-0125 \
--model gpt3_5_chat

gpt_emb:

byzerllm deploy --pretrained_model_type saas/openai \
--cpus_per_worker 0.001 \
--gpus_per_worker 0 \
--num_workers 1 \
--infer_params saas.api_key=${MODEL_OPENAI_TOKEN} saas.model=text-embedding-3-small \
--model gpt_emb

如果你想用本地模型(包括向量模型),参考:

  1. https://github.com/allwefantasy/byzer-llm

  2. 祝威廉:014 - AutoCoder 如何使用 Ollama

构建索引

auto-coder doc build --model qianwen_chat \
--emb_model qianwen_emb \
--source_dir 你存放文档的目录

你也可以把上面的参数放到一个 YAML 文件里去:

source_dir: /Users/allwefantasy/projects/deploy_models
model: qianwen_chat
emb_model: qianwen_emb

然后这样运行:

auto-coder doc build --file actions/build_doc.yml

终端问答助手

auto-coder doc query --model qianwen_chat \
--emb_model qianwen_emb --source_dir . \
--query "请给出 qianwen_chat  的启动语句"

输出:

面是输出:

=============RESPONSE==================


2024-04-17 14:01:50.287 | INFO     | autocoder.utils.llm_client_interceptors:token_counter_interceptor:16 - Input tokens count: 0, Generated tokens count: 0
byzerllm deploy --pretrained_model_type saas/qianwen \
--cpus_per_worker 0.001 \
--gpus_per_worker 0 \
--num_workers 2 \
--infer_params saas.api_key=${MODEL_QIANWEN_TOKEN}  saas.model=qwen-max \
--model qianwen_chat

=============CONTEXTS==================
/Users/allwefantasy/projects/deploy_models/run.txt
/Users/allwefantasy/projects/deploy_models/run.sh

如果你想多轮对话:

auto-coder doc chat --model qianwen_chat \
--emb_model qianwen_emb --source_dir .

把 query 换成 chat ,就可以在终端直接聊天:

cb5b83fcd7def05cf3a5e3b3b1a81104.jpeg

Web/App 界面问答助手

首先,用AutoCoder 启动一个服务:

auto-coder doc serve --model qianwen_chat \
--emb_model qianwen_emb --source_dir .

默认会监听 8000端口。

下载一个桌面版聊天程序: https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/releases

双击运行后,做如下配置:

631b2c9555f8abb425bb6fcf8e4d3072.jpeg
  1. 自定义模型名这里,你需要修改成 qianwen_chat, 也就是你启动时给模型取的名字。

  2. 模型那块,你要选择你自定义模型名字,表示启用这个模型。

  3. 模型供应商,我们是兼容 OpenAI的接口的,所以你选择 OpenAI 即可。

现在可以开聊了:

9fc48e0acb022104b11fb0a62fbfeb24.jpeg

会自动执行命令的助手

auto-coder doc query --model qianwen_chat --emb_model qianwen_emb \
--source_dir . \
--query "帮我启动 qianwen_chat" \
--execute

相比前面的小助手,末尾加一个参数 --execute, 这个时候小助手会自动执行部署命令:

=============RESPONSE==================


2024-04-17 13:22:33.788 | INFO     | autocoder.utils.llm_client_interceptors:token_counter_interceptor:16 - Input tokens count: 0, Generated tokens count: 0
byzerllm deploy --pretrained_model_type saas/qianwen \
--cpus_per_worker 0.001 \
--gpus_per_worker 0 \
--num_workers 2 \
--infer_params saas.api_key=${MODEL_QIANWEN_TOKEN}  saas.model=qwen-max \
--model qianwen_chat

=============CONTEXTS==================
/Users/allwefantasy/projects/deploy_models/run.txt
/Users/allwefantasy/projects/deploy_models/run.sh


=============EXECUTE==================
2024-04-17 13:22:45.916 | INFO     | autocoder.utils.llm_client_interceptors:token_counter_interceptor:16 - Input tokens count: 1184, Generated tokens count: 136
steps=[ExecuteStep(code='byzerllm deploy --pretrained_model_type saas/qianwen --cpus_per_worker 0.001 --gpus_per_worker 0 --num_workers 2 --infer_params saas.api_key=${MODEL_QIANWEN_TOKEN} saas.model=qwen-max --model qianwen_chat', lang='shell', total_steps=1, current_step=1, cwd=None, env=None, timeout=None, ignore_error=False)]
Shell Command:
byzerllm deploy --pretrained_model_type saas/qianwen --cpus_per_worker 0.001 --gpus_per_worker 0 --num_workers 2 --infer_params saas.api_key=${MODEL_QIANWEN_TOKEN} saas.model=qwen-max --model qianwen_chat
Output:
Command Line Arguments:

--------------------------------------------------

command             : deploy

ray_address         : auto

num_workers         : 2

gpus_per_worker     : 0.0

cpus_per_worker     : 0.001

model_path          : 

pretrained_model_type: saas/qianwen

model               : qianwen_chat

infer_backend       : vllm

infer_params        : {'saas.api_key': '', 'saas.model': 'qwen-max'}

file                : None

--------------------------------------------------

模型 qianwen_chat 已经部署过了

可以看到,byzerllm 会提示 qianwen_chat 已经部署过了。

最后

实际上这里只是一个锦上添花的功能,该功能的实际作用是和搜索引擎的价值是一样的,就是自动帮你检索一些你的文档,然后在你写代码的时候,帮你扩充相关信息,从而让大模型帮你更好的生成代码。

  • 25
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用autoCode =================== 项目介绍 ------------------- > **autoCode介绍** > - autoCode是一个代码生成工具。基于velocity模板引擎,采用SpringMVC + mybatis + FDUI + mysql > - 此工具只负责生成代码文件,不会生成完整功能的应用程序. > **其特点主要有** > - 用户登陆 - 每个用户有他自己独立的数据库连接配置和模板配置; > - 数据源配置 - 可以配置多个数据源,多种数据库类型(目前支持Mysql,MSServer数据库,可以扩展); > - 模板配置 - 定义自己的模板,采用velocity模板语法.这样可以根据模板来生成不同的代码,如POJO,Dao,mybatis配置文件等; > - 操作简单 - 生成代码只需三步:1. 选择数据源;2. 选择表;3. 选择模板。 > - 提供简单的客户端操作,能将代码直接生成到本地 > **部署程序步骤:** > 1. Maven构建eclipse工程,运行Maven命令:mvn eclipse:eclipse,完成后导入到eclipse中 > 2. 导入数据库(MYSQL),SQL文件在项目根目录下,名为autoCode.sql,运行里面的内容即可 > 3. 修改数据库连接参数,配置文件在src/main/resources/config.properties > 4. 启动项目,运行Maven命令:mvn jetty:run > 5. 浏览器输入http://localhost:8088/autoCode 登录用户名密码均为admin 端口默认用了8088,如需修改,前往pom.xml,找到maven-jetty-plugin插件的port参数. jetty安装配置 ------------------- 从 http://download.eclipse.org/jetty/ 中下载jetty 文件,命令 unzip 解压zip文件 在eclipse help->install new software 中通过地址http://run-jetty-run.googlecode.com/svn/trunk/updatesite/ 安装jetty插件 安装好插件后,可以通过 点击项目 -》右键-> run configuration-->jetty webapp 项
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值