AutoCoder 副作用,秒变命令行版Siri,再也不用复制黏贴命来管理大模型了

科技   其他   2024-04-17 17:12   浙江  

AutoCoder 可以通过你指定的文档,以及自动到搜索引擎进行搜索来获取信息,从而更好的帮你生成代码,但我们不满足,我们还希望能够对用户本地的文档进行索引,从而自动获取一些信息,帮助你本地的项目更好的迭代,为此我们推出了一个本地的 Rag 知识库。

结果没想到,解决了我一个以前一直很苦恼的问题,因为我经常要测试各种模型,这就需要经常启停一些模型,为此,我原来是这么做的,把我常用的一些模型的启动,关闭语句放在一个文件里。

这个文件我一直打开,然后有需要就拷贝黏贴到命令行里。

其实很繁琐。今天,我突然发现,我完全通过自然语言来操控他了,打开命令行,执行下面语句:

auto-coder doc query --file ~/model.yml \--query "先关闭kimi_chat,再启动"

其中 model.yml 文件是一个固定文件:

source_dir: /Users/allwefantasy/projects/doc_repomodel: qianwen_chatemb_model: qianwen_emb

下面是执行结果:

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

2024-04-17 16:37:50.255 | INFO | autocoder.utils.llm_client_interceptors:token_counter_interceptor:16 - Input tokens count: 0, Generated tokens count: 0先执行以下命令停止(关闭)kimi_chat模型模板:
```bashbyzerllm undeploy --model kimi_chat```
然后执行以下命令启动kimi_chat模型模板:
```bashbyzerllm deploy --pretrained_model_type saas/official_openai \--cpus_per_worker 0.001 \--gpus_per_worker 0 \--num_workers 2 \--infer_params saas.api_key=${MODEL_KIMI_TOKEN} saas.base_url="https://api.moonshot.cn/v1" saas.model=moonshot-v1-32k \--model kimi_chat```
=============CONTEXTS==================/Users/allwefantasy/projects/doc_repo/deploy_models/run.txt/Users/allwefantasy/projects/doc_repo/deploy_models/run.sh

完全对了。当然,如果还要你复制黏贴执行,那就太麻烦了,我们可以直接让他执行:

auto-coder doc query --file ~/model.yml \--query "先关闭kimi_chat,再启动" \--execute

这时候会输出执行日志:

=============EXECUTE==================2024-04-17 16:33:57.882 | INFO     | autocoder.utils.llm_client_interceptors:token_counter_interceptor:16 - Input tokens count: 1372, Generated tokens count: 146steps=[ExecuteStep(code='byzerllm undeploy --model kimi_chat', lang='bash', total_steps=-1, current_step=-1, cwd=None, env=None, timeout=None, ignore_error=False), ExecuteStep(code='byzerllm deploy --pretrained_model_type saas/official_openai --cpus_per_worker 0.001 --gpus_per_worker 0 --num_workers 2 --infer_params "saas.api_key=${MODEL_KIMI_TOKEN} saas.base_url=\'https://api.moonshot.cn/v1\' saas.model=moonshot-v1-32k" --model kimi_chat', lang='bash', total_steps=-1, current_step=-1, cwd=None, env=None, timeout=None, ignore_error=False)]Shell Command:byzerllm undeploy --model kimi_chatOutput:Command Line Arguments:
--------------------------------------------------
command : undeploy
ray_address : auto
model : kimi_chat
file : None
--------------------------------------------------
模型 kimi_chat 卸载成功
Error: 2024-04-17 16:34:02,439 INFO worker.py:1540 -- Connecting to existing Ray cluster at address: 127.0.0.1:6379...
2024-04-17 16:34:02,450 INFO worker.py:1715 -- Connected to Ray cluster. View the dashboard at 127.0.0.1:8265
--------------------Shell Command:byzerllm deploy --pretrained_model_type saas/official_openai --cpus_per_worker 0.001 --gpus_per_worker 0 --num_workers 2 --infer_params "saas.api_key=${MODEL_KIMI_TOKEN} saas.base_url='https://api.moonshot.cn/v1' saas.model=moonshot-v1-32k" --model kimi_chatOutput:

可以看到系统自动执行了两条命令。最后我们来测试下:

auto-coder doc query \--file ~/model.yml \--query "查询 kimi_chat,输入: 你好" \--execute

输出如下:

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

2024-04-17 17:04:04.177 | INFO | autocoder.utils.llm_client_interceptors:token_counter_interceptor:16 - Input tokens count: 0, Generated tokens count: 0使用以下命令查询模型模板 kimi_chat,并输入内容“你好”:
byzerllm query --model kimi_chat --query '你好'
=============CONTEXTS==================/Users/allwefantasy/projects/doc_repo/deploy_models/run.sh/Users/allwefantasy/projects/doc_repo/deploy_models/run.txt

=============EXECUTE==================2024-04-17 17:04:16.264 | INFO | autocoder.utils.llm_client_interceptors:token_counter_interceptor:16 - Input tokens count: 1139, Generated tokens count: 67steps=[ExecuteStep(code="byzerllm query --model kimi_chat --query '你好'", lang='shell', total_steps=1, current_step=1, cwd=None, env=None, timeout=None, ignore_error=False)]Shell Command:byzerllm query --model kimi_chat --query '你好'Output:Command Line Arguments:
--------------------------------------------------
command : query
ray_address : auto
model : kimi_chat
query : 你好
template : auto
file : None
--------------------------------------------------
你好!有什么我可以帮助你的吗?
Error: 2024-04-17 17:04:20,547 INFO worker.py:1540 -- Connecting to existing Ray cluster at address: 127.0.0.1:6379...
2024-04-17 17:04:20,562 INFO worker.py:1715 -- Connected to Ray cluster. View the dashboard at 127.0.0.1:8265
--------------------

终于告别各种复制黏贴执行命令啦。

这个功能背后的逻辑其实很简单:

  1. 用 AutoCoder 构建知识库,我把我之前包含了启动脚本的那个文本灌进了知识库。

  2. AutoCoder会根据知识库的内容来生成对我的回复,然后执行。AutoCoder 支持 Shell/Python的自动执行。



更多信息参考这篇文章:https://zhuanlan.zhihu.com/p/693000407

欢迎关注 AutoCoder: https://github.com/allwefantasy/auto-coder

祝威廉
架构/大数据/机器学习的心得和体会,也会因为爱情和生活写首诗
 最新文章