002- 用 AutoCoder 添加和修改代码

news2024/9/25 11:19:04

实际上 AutoCoder 最适合的场景是修改代码,因为它最原始的功能是把源码+你指定的文档+搜索引擎搜集到的资料和你的需求生成一个prompt给到大模型。

此外纠正大家一个观点, AutoCoder 不是一句话给你创建一个网站抑或一个大型的项目。我们是帮助研发或者产品更快的迭代产品。

不过我们还是从最开始项目啥都没有开始,现在,我们用 AutoCoder 创建一个 web server

source_dir: /tmp/t-py
target_file: /home/winubuntu/projects/ByzerRawCopilot/output.txt 


model: qianwen_chat
model_max_length: 2000
model_max_input_length: 6000
anti_quota_limit: 5


search_engine: bing
search_engine_token: ENV {{BING_SEARCH_TOKEN}}


## execute the prompt generated by auto-coder
execute: true
## extract the code from the prompt generated by auto-coder 
## and overwrite the source code
auto_merge: true


project_type: py


query: >
  在 /tmp/t-py/server/server.py 
  中使用 FastAPI 创建一个web服务。
  服务的根路径返回 "Hello, World!"。

注意,这里我们开启了 auto_merge 参数。这个参数会修改你的项目,所以总体来说还是慎用。如果这个参数没有开启,可以在 target_file 里找到生成的代码,可以自己手动复制黏贴下。

执行下:

auto-coder --file ./examples/from-zero-to-hero/002_fastapi_hello_word.yml

日志比较简单:

2024-03-21 17:55:08.944 | INFO     | autocoder.dispacher.actions.action:process_content:225 - Auto merge the code...
2024-03-21 17:55:08.945 | INFO     | autocoder.common.code_auto_merge:merge_code:51 - Upsert path: /tmp/t-py/server/server.py
2024-03-21 17:55:08.945 | INFO     | autocoder.common.code_auto_merge:merge_code:55 - Merged 1 files into the project.

结果:

(byzerllm-dev) (base) winubuntu@winubuntu:/tmp/t-py$ tree
.
└── server
    └── server.py


1 directory, 1 file

执行下代码:

(byzerllm-dev) (base) winubuntu@winubuntu:/tmp/t-py$ python /tmp/t-py/server/server.py
INFO:     Started server process [1333520]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     127.0.0.1:33516 - "GET / HTTP/1.1" 200 OK
INFO:     127.0.0.1:33516 - "GET /favicon.ico HTTP/1.1" 404 Not Found

访问下:

5ca9f89302b4eae926ea290cd991e099.png

成功搞定。

现在,让我们来修改下代码。

source_dir: /tmp/t-py
target_file: /home/winubuntu/projects/ByzerRawCopilot/output.txt 


model: qianwen_chat
model_max_length: 2000
model_max_input_length: 6000
anti_quota_limit: 5


search_engine: bing
search_engine_token: ENV {{BING_SEARCH_TOKEN}}


## execute the prompt generated by auto-coder
execute: true
## extract the code from the prompt generated by auto-coder 
## and overwrite the source code
auto_merge: true


project_type: py


query: >
  修改 server.py 中的端口,改成 9001

执行下:

auto-coder --file ./examples/from-zero-to-hero/002_fastapi_modify_port.yml

此时打开 server.py 后,可以看到端口已经被改成 9001了

from fastapi import FastAPI


# 创建FastAPI应用实例
app = FastAPI()


# 定义根路径的GET请求处理函数,返回 "Hello, World!"
@app.get("/")
def read_root():
    return {"message": "Hello, World!"}


if __name__ == "__main__":
    # 启动web服务,端口改为9001
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=9001)

这里你可能好奇,为啥前面我可以直接说修改 server.py 而不需要写完整路径了。因为这次项目里有python文件了,有上下文,所以大模型是可以自动推测的,你不需要写那么完整。

今天内容就到这里。下一期我们看看如何解决你没有大模型API,或者你的API版大模型太弱,在只有Web版本的诸如 Kimi/GPT4 的情况下,AutoCoder如何帮助你完成编程。

这里剧透下:


1. AutoCoder 之负责生成Prompt,你可以拖拽文件到Web版大模型里去。

2. AutoCoder 在需要用到的大模型的地方,会询问你,这个时候你可以把结果贴到web版里,然后再把结果贴回来,帮助AutoCoder完成整个流程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1542341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

移植 Zephyr 到 Art-Pi

背景 ​ 最近工作中接触到了 Zephyr,不由觉得 Zephyr 是个很强大、全面、优秀的实时操作系统,但同时是有一定的上手难度的,其复杂的构建系统让小编倒吸一口凉气。为了深入研究并完全掌控 Zephyr,小编决定把它移植到手头的开发板上…

Java八股文(SpringCloud)

Java八股文のSpringCloud SpringCloud SpringCloud 什么是Spring Cloud? Spring Cloud是一个用于构建分布式系统的开发工具箱,它基于Spring Boot框架,提供了一系列的组件和工具,用于帮助开发者快速搭建和管理分布式系统中的各种常…

Spring相关框架八股

单例bean是线程安全的吗? AOP 事务失效 Bean生命周期 Bean循环依赖解决 MVC执行流程 自动装配原理 Spring常见注解 SpringMVC注解 SpringBoot注解 MyBatis执行流程 MyBatis延迟加载 MyBatis缓存 SpringCloud五大组件 注册中心Nacos、Eureka 负载均衡Ribbon 服务雪崩…

Android 你遇到的无障碍onGesture不执行

你是不是和我一样,在开发无障碍应用的时候,翻边了Android的AccessibilityService源码 但是就是发现不了onGesture不执行的原因? 你是不是和我一样,在好多测试手机之间徘徊,发现还是不执行? 你是不是和我一…

2024内蒙古等保备案办理流程指引

网络安全已成为国家、企业和个人共同关注的焦点。所以积极办理等保备案是非常重要的。本文将详细介绍办理内蒙古企业办理等保备案的流程,帮助读者了解并顺利完成相关手续。仅供参考哦! 2024内蒙古等保备案办理流程指引 办理时间:周一到周五工…

PostgreSQL11 | Windows系统安装PostgreSQL

本教程选取与参考书籍《PostgreSql11 从入门到精通》(清华大学出版社)的11大版本最新小版本11.22的安装作为教程案例 下载 下载PostgreSQL installer 下载到本地 安装 运行安装引导器 中国地区语言选项(暂时) Chinese(Simplifie…

OpenHarmony IDL工具规格及使用说明书(仅对系统应用开放)

IDL接口描述语言简介 当客户端和服务器进行IPC通信时,需要定义双方都认可的接口,以保障双方可以成功通信,OpenHarmony IDL(OpenHarmony Interface Definition Language)则是一种定义此类接口的工具。OpenHarmony IDL先…

io流的学习4

字符缓冲流 原理:底层自带了长度为8192的缓冲区提高性能。 import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException;public class BufferedStringdemo01 {public static void main(String…

【旅游景点项目日记 | 第二篇】基于Selenium爬取携程网景点详细数据

文章目录 3.基于Selenium爬取携程网景点详细数据3.1前提环境3.2思路3.3代码详讲3.3.1查询指定城市的所有景点3.3.2获取详细景点的访问路径3.3.3获取景点的详细信息 3.4数据库设计3.5全部代码3.6效果图 3.基于Selenium爬取携程网景点详细数据 3.1前提环境 确保安装python3.x环…

HCIP的学习(4)

GRE和MGRE VPN---虚拟专用网络。指依靠ISP或其他公有网络基础设施上构建的专用的安全数据通信网络。该网络是属于逻辑上的。​ 核心机制—隧道机制(封装技术) GRE—通用路由封装 ​ 三层隧道技术,并且是属于点到点的隧道。 [r1]interface T…

1+x中级题目练习复盘(九)

注解和注释是两种完全不同的语法,注解可以为程序增加额外的功能,或为程序添加元数据。 函数式接口是指有且只有一个抽象方法的接口; 函数式接口可以使用 FunctionalInterface 进行标注,但不是必须的。除了 “java.util.function…

zabbix安装及使用(错误及解决方案)

安装zabbix 常见错误: Zabbix下载错误 6.0与5.0版本冲突 解决方法 yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get --skip-broken zabbix6.0-web 自己有数据库,使用以下命令 pid找不到 /var/log/zabbix/zabbix_server.log 错误&a…

[AutoSar]BSW_Com020 Handle_ID,Global_PDU,Local_PDU的联系

目录 关键词平台说明一、概念二、API的使用和形参三、Handle ID 唯一性特例四、PDU和handle ID关联用例 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector , EB芯片厂商TI 英飞凌编程语言C,C编译器HighTec (…

电子电器架构 —— 诊断数据DTC具体故障

电子电器架构 —— 诊断数据DTC具体故障 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣…

Windows 7 静态 IP 地址

Windows 7 静态 IP 地址 References 静态 IP 地址设置为 192.168.1.198 控制面板 -> 查看网络状态和任务 更改适配器设置 网络连接 -> 属性 TCP / IPv4 警告 - 已计划将多个默认网关用于提供单一网络 (例如 intranet 或者 Internet) 的冗余。 6.1. 关闭 redundancy VMw…

【stable diffusion扩散模型】一篇文章讲透

目录 一、引言 二、Stable Diffusion的基本原理 1 扩散模型 2 Stable Diffusion模型架构 3 训练过程与算法细节 三、Stable Diffusion的应用领域 1 图像生成与艺术创作 2 图像补全与修复 3 其他领域 四、Stable Diffusion的优势与挑战 👉优势 &#x1f…

WSL下Ubuntu+RTX4090安装CUDA+cuDnn+Pytorch

安装驱动 首先需要明确的是,在WSL下安装Ubuntu,如果要使用主机的GPU卡,只需要在主机Windows上安装驱动,Linux中不需要安装驱动,可以在Linux中使用nvidia-smi命令查看驱动版本。 安装CUDA 避坑注意事项:如…

C++初阶:STL容器list的使用与初版自实现

目录 1. list的接口与使用1.1 默认成员函数1.2 迭代器与容量相关成员函数1.3 存储数据操作相关成员函数1.4 其他list操作成员函数 2. list的自实现2.1 list的自实现功能2.2 list的结点结构2.3 list的迭代器2.3 list的结构2.4 list迭代器的运算符重载2.5 list的成员函数 3. cons…

FreeCAD傻瓜教程之基准面的构建-在实体的表面上新建坐标、倾斜的平面、附加不同的台阶、旋转体等

目的:学会在已有模型的不同剖面上建立新的坐标系,并绘图;使得新图形仍然作为同一个零件实体的构件。 零、需求举例 在下列模型中,我们要在圆杆的顶部增加一个把手,如果点击圆杆顶部,则仅能在顶部圆形所在…

【Linux】Linux工具学习之git

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 前言一、账号注册1.1 GitHub与Gitee 二、构建仓库三、安装git 四、配置git五、克…