Skip to content

Latest commit

 

History

History
116 lines (86 loc) · 5.07 KB

README_zh.md

File metadata and controls

116 lines (86 loc) · 5.07 KB

AI 与程序员之间交互怎么样合理

1. 充分利用 terminal

cursor 之类都增加了一个 chat 的聊天交互框,其实增加了很多东西,交互起来并不舒服,程序员天生会与 terminal 交互,那为什么不复用 terminal terminal 的输入输出都可以被 AI 接管做中间过程处理,是一种更方便更简介的方式。

  1. 人工输入 -> AI 预处理 -> Agent 执行

如,我在终端中输入:

$ 帮我创建个数据库
我即将帮你创建 pgsql 数据库,规格为 2CPU 4G内存 10G磁盘 三副本,是否确认?
$ 开发测试环境,单副本就行,其他没问题
创建中...
已完成
数据库信息为:
postgresql://postgres:[email protected]:5432
(该信息已经被录入上下文,编码时会自动取用这个值)
  1. 程序输出 -> AI 后处理 -> Agent 执行
$ devbox@devbox:~/project$ python3 hello.py
Traceback (most recent call last):
  File "/home/devbox/project/hello.py", line 1, in <module>
    from flask import Flask, request, jsonify, render_template
ModuleNotFoundError: No module named 'flask'

当出现这样一段报错时,cursor 的选择是 add to chat,本身 terminal 为什么不能是 chat,而且我大概率是需要 AI 给我去解决这个问题的。

环境中没有安装 Flask 模块, 这就为您生成安装命令
$ pip install Flask

然后用户敲 enter 安装

  1. 一些 read only 能发现的错误可以直接提示出来

举个例子,用户代码中的数据库地址和生成的数据库真实地址不匹配,在运行程序时可以提示出来。 再比如用户监听的端口号与 devbox 中配置的端口号不一致,也可以提示出来。

$ python hello.py
我检测到程序监听的端口号是 8080,而 devbox 暴露的端口是 3000,不一致,会导致外网域名无法访问。
  1. 普通的交互

和聊天一样,直接终端里面发就完了。

本来写代码信息就有点爆炸,再加聊天窗口,杂上加杂,其实有终端完全够用,如无必要,勿增实体。

提示词发到聊天框是不合理的

提示词很多情况下是很长的,一个需求,特别是在工程刚开始时,最合理的方式是放在 markdown 文件里面。 而且还会一直更新,不能每次更新都让用户复制再重发一次,这样很累。

交互过程,我先把提示词写到了一个文件中如 proposal.md, 结合终端就可以配合 AI 生成代码了:

$ 这是我的需求文件 proposal.md, 请生成代码
生成中...
生成完成...
尝试运行...
尝试测试...
完成
地址为:https://ulqvxcpljwja.usw.sailos.io

$ 生成的不对,请回滚
回滚完成

这里有三点:

  1. 不需要用户交互确认,直接给用户生成工程目录和具体的代码,聊天框复制来确认去实在很烦。
  2. 为什么不需要确认?因为有回滚,而且在用这个功能时大部分情况是新项目或者新模块。
  3. 要充分利用 git, 如果 clone 的项目那就有 git, 没有 git 帮用户初始化 git,与 git 强依赖有一万个好处,可以满天飞的改,各种回滚。

更新代码片段

补全是基本工程肯定是需要的,要修改某块代码时,最简单的方式是,把这段代码框起来,然后在 terminal 中直接问。

在 IDE 中选中某块代码 -> 打开终端

$ 这段代码中缺少了 passwd 字段,多了 email 字段,请与数据库表设计对其
修改中...
测试中...
修改完成
$ 回滚一下

图片支持

根据截图生成前端代码是个普遍需求,”直接粘贴到终端中“ 确定是否好实现。 也可以一样图片粘贴到 markdown 中, 提示词也可以写到这个 mardown 中,这样 AI 会更理解,上下文也被保存下来了。 更新时同理,可以打开这个 markdown, 终端中直接交互,比如 markdown 中有十张 UI 的截图,你想改第六张,你可以框选那部分,再和 AI 说“字体不对”

主动触发

比如上述数据库的例子,一旦用户代码中写了数据库访问的代码,但是上下文中还没有,此时终端可以主动输出一些内容,告诉用户可以帮助其创建数据库。

  • 智能 terminal
  • 工程初始化
  • 截图生成精确前端代码

--- 华丽分割线 ---

我们可以做一个东西,你感觉不到在 vscode 上增加了什么东西,但是却变得非常的智能。

Why 为什么我们一定要做 AI 编码

  1. 像 bolt windsurf 这类工具已经开始支持部署了,一旦用户都用他们,而且 AI 足够强大,就可以完全绕开我们,在上游进行截流,我们就 game over 了
  2. AI 完成绝大部分工作是绝对的趋势,与人的交互方式也在不断改变,我们必须适应这种改变的节奏,不能掉队。
  3. 这是一个最好的时机,Why now,有大趋势,接受度高,而且还不完美。

Why us 我们的优势是什么

后端能力强,生态强,内功强,基础牢。 Sealos 后端很强,还有 FastGPT 的知识库,通过 RAG 技术去维护编程的上下文再合适不过了。