两个月 8 万行代码, 我是如何写出 GPT-Runner 直接对话文件和管理运行 AI 预设的

WechatIMG260.png

前言

实时对话代码库??

我是第一批 copilot 内测用户,早在 2021 年 11 月我就开始体验 copilot 了。在 chatgpt 出来第二天我就注册并体验了。

可以说别人还在农耕时代我就早早地用上了蒸汽机。这让我在开发效率上获得了巨大的优势,我可以用同样的开发评估时间摸更多的鱼。

但是我还是不满足,chatgpt 无法阅读我整个代码库,直到 chatpdf 在 2 月份横空出世,它打破了 chatgpt 上下文不足的局面。让我萌生了要把这项技术应用到我的工作中的想法。

我开始研究他们的代码、查找资料,我发现它们用的是 embedding 方式,先把你的文件内容拆分,然后发到 openai embedding(向量化)后,再把文件内容片段和向量结果保存到向量数据库。

当你提问时,把你的问题 embedding,然后把 embedding 结果和向量数据库里的向量进行比较,找到最相似的向量,然后把这个向量对应的文件内容片段返回给 openai,让 openai 根据这个片段和你的问题生成答案。

这样就可以实现 “无限” 的上下文了。但是效果并不理想,因为语义向量片段只对文章之类效果好(勉强),代码压根就不行。

我还是保持复制文件内容,然后去 chatgpt 问的方式,虽然傻,但是效果好。

复制粘贴是一件反人类的事,我想,如果我能把这个过程自动化,那就好了。这个想法在我脑海诞生。

Prompt Storybook ??

我在新的公司里试图把 AI 工作流标准化,我阅读了大量的 prompt 教程,我为项目量身写了一些 prompt 放到 txt 文件里并用 git 进行管理。

我告诉队友在写组件或单元测试时 copy 我的 prompt 提问会更精准。

事实也的确如此,因为 prompt 里有说了我们的项目架构和依赖,还有一些例子给 AI。

但是这样的工作流还是不够优雅,我想,有没有类似 storybook 这样的工具,可以直接管理并运行项目里的 prompt 呢?

虽然有,但是他们都是 APP 形式或者要本地部署 web,无法标准化,比如一条命令就可以运行,或者可以直接在 IDE 里运行。

我想,我可以自己写一个,对 vscode 和 jetbrains 系列 IDE 进行支持,对其他 IDE 提供 cli 快速启动 web 的 AI 预设 storybook,这样就可以把 AI 工作流标准化了。

开始

架构:我需要同时提供 cli/vscode/web/jetrains(未来) 三种方式,cli 方式可以快速启动 web,vscode 方式可以直接在 vscode 里运行,web 方式让没有适配该 IDE 的人也可以使用。

我还需要后端,因为很多文件操作都无法在 web 端完成。

因此,我徒手用 express + langchian + react + vite + ts 写了一个完整的项目,通过 web window 开放配置介入 vscode 扩展 webview。

期间我重构了很多次功能和 ui,改到我用得顺手为主,这个 GPT-Runner 只有一个目标,就是提升我的效率!让我有更多摸鱼时间!

经过两个月下班时间打磨,我终于在今天完成了它:https://github.com/nicepkg/gpt-runner

功能

勾选文件向 AI 提需求

GPT Runner 的主要功能是什么呢?它可以让你直接与你选中的多个代码文件进行提问,提需求给 AI,提 bug 给 AI,让 AI 替你完成。

它不是 embedding,我实测测效果非常好,我本地也装了很多其他的 vscode ai 扩展,它们并没有这个功能,ui 也远不及我的 GPT-runner,我现在只会用 copilot 和 GPT-runner。

它最核心的是管理你的 AI 预设 (xxx.gpt.md 文件),你可以在项目中创建一些 AI 预设文件,这些文件可以包含一些系统提示、用户提示以及一些 AI 参数,比如模型名称、温度等。

WechatIMG300.jpeg

让我为你介绍一下我的 AI 工作流

比如开发人员 A 写了一份 AI 预设专门根据这个项目的 class 生成单元测试,用它生成的结果代码接近 70% 可用。他把它用 git 推上去了。

开发人员 B 在写单元测试时,他只需要在 GPT Runner 里选择这个 AI 预设,然后选中他要测试的 class,然后问 AI 生成单元测试,AI 就会根据这个 class 生成单元测试。

突然开发人员 B 发现这份 AI 预设提示词缺少了一些关键词,他就在 AI 预设文件里添加了一些关键词,这份 AI 预设生成的单元测试就更加准确了。达到了 80% 代码可用。

随着不断的迭代,这份 AI 预设生成的单元测试无限接近 100% 代码可用。

这份 AI 预设无疑是非常具用价值的新时代代码 ! Prompt Engineer!

image.png

其他功能

  1. 响应式 UI,在不同宽度布局下都做了精心调整。侧边栏和输入框都可以拖拽调整宽高。
  2. 输入框是 vscode 同款 monaco-editor 编辑器。你可以代码高亮编辑问题。
  3. 在 vscode 扩展里它能感知你正在编辑的文件和选中的文本,根据这些内容给你作答。
  4. 可以通过局域网分享 web 链接给队友用,放心,ai key 是私密的,他们看不到。
  5. cli 还自带内网穿透分享功能,可以远程分享你的 gpt-runner web 给对方用,具体自己探索。
  6. 同时支持 openai 和 anthropic(claude),未来还会支持更多
  7. 多语言多主题。
  8. 实时估算 Token (为了提高估算速度降低了精度),右上角有当前 token 数。
  9. 我强烈建议你看完 README 视频。

WechatIMG254.png

大白菜 2023-07-07 23.49.17.jpeg

安装

GPT Runner的安装也非常简单,如果你有VSCode的话,你只需要在扩展商店搜索GPT Runner,然后安装就可以了。

如果你没有 VSCode,你也可以通过安装nodejs ( >= 16.15.0),去到你的项目目录然后执行 npx gptr 来运行就行。第一次要下载资源会比较慢。

Jetrains 系 IDE 请等待后续支持。

WechatIMG297.png

后续

你可以去 https://github.com/nicepkg/gpt-runner/blob/main/docs/gpt-config.cn.md 查看 AI 预设配置规范。

可以的话帮忙点一下 Github star 收藏一下,摸鱼效率神器,至少这个工具我自己喜欢用,我相信你也会喜欢的。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 3.1 正式发布,更新了一大批新特性。。学不动了!

点击关注公众号,Java干货及时送达 学习 Spring Cloud 微服务的正确姿势! 用上 ChatGPT 啦,强的离谱! 终于把 Spring Boot 3.0 写成书了! Spring Boot 3.1 正式发布 大家好,我是R哥。 上一篇:Spr…

图谱实战 | Shopee 多语言商品知识图谱技术构建方法和应用

转载公众号 | DataFunTalk 导读 Shopee 是一家服务于全球多个市场的电商平台,致力于为消费者提供更加便捷,安全,快速良好的消费体验。Shopee 深耕多种不同的语言和市场,在这种国际化的服务平台上,需要处理多语言和混合…

前沿对话:中国AIGC新机遇,如何掘金大模型和应用双赛道

3月29日消息,首届中国AIGC产业峰会在京举行,大会由量子位主办,聚集起了领域内产学研代表,分享和探讨了包括大模型、生成式AI、ChatGPT等在内时下热议趋势和话题。 图片来源:由无界AI生成 在题为《中国AIGC新机遇》的圆…

【你问我答】与ChatAI智能对话—AI应用研习社

ChatGPT是一种基于深度学习的自然语言处理模型,它可以用于聊天机器人、智能客服、语音助手等多种应用场景。ChatGPT的核心技术是GPT(Generative Pre-trained Transformer),它是一种非常强大的语言模型,可以生成高质量的…

chatgpt赋能python:Python做聊天程序:打造智能交流

Python 做聊天程序:打造智能交流 Python 是一种易于学习、灵活性强、最近几年得到广泛应用的编程语言。在当今数字化时代,即便是日常生活中我们都需要与人交流,但人们社交媒体的繁荣已经印证了人们对在线交流工具的需求。以下将对 Python 如…

Android性能分析之---卡顿分析

一、性能分析---场景 低性能的APP常见的表现有启动/界面切换慢、动画掉帧、卡顿(启动卡,点击按钮卡,进入新页面卡等)、耗电,甚至出现应用无响应、程序崩溃的现象。当我们着手解决这些性能问题时,面对的第一…

Android检测应用卡顿

当应用发生卡顿时,我们如何得知是什么原因导致的呢?是机器性能差,还是代码问题,抑或是其他应用抢占CPU资源问题呢?特别是概率比较低,难以复现的卡顿问题。使用BlockCanary库可以帮助你记录应用发生卡顿时的…

Android进阶之用起来很卡,解决方法

最近开始安装使用android studio,痛苦的发现安装或者后期升级后as运行时非常的卡。于是,深入的研究解决方法并不断的尝试,最后总结出如下的两点。 一、工具软件配置 1、解决网络连接问题 (1)问题描述 检查你的 Andr…

Android开发——监控造成UI卡顿的原因

0. 前言 Android只有主线程才能更新UI。如果界面1秒钟刷新少于60次,即FPS小于60,用户就会产生卡顿感觉。 Android使用消息机制进行UI更新的,如果在主线程handler的dispatchMessage方法进行了耗时操作,就会发生UI卡顿。 本文原创…

Android app优化之导致app 卡顿慢的直接原因

大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验。但是Android系统很有可能无法及时完成那些复杂的界面渲染操作。Android系统每隔16ms发出VSYNC信号&a…

android页面卡顿定位,Android界面卡顿分析步骤详解

1、打开ddms工具,位于Sdk\tools\monitor.bat,双击 2、连上手机,选着进程,点击上面的start Method Profiling按钮 image.png 3、点击之后会弹出一个对话框,点击ok即可,然后操作你认为卡顿的界面。再点击一次刚刚的按钮。…

如何监测Android应用卡顿?这篇就够了

本文首发于微信公众号「Android开发之旅」,欢迎关注 Jetpack版Wan-Android项目地址:Android Jetpack架构开发组件化应用实战 欢迎star Flutter版Wan-Android项目地址:Flutter版Wan-Android 欢迎star 卡顿介绍 用户在使用我们应用的时候&am…

Android卡顿优化

一. Android渲染知识 1.1 绘制原理 Android系统要求每一帧都要在 16ms 内绘制完成,平滑的完成一帧意味着任何特殊的帧需要执行所有的渲染代码(包括 framework 发送给 GPU 和 CPU 绘制到缓冲区的命令)都要在 16ms 内完成,保持流畅…

解决安卓手机卡顿的七个技巧

转载自:http://www.7to.cn/news/detail/3446.html 导读:最近,有用户吐槽自己的手机越来越卡,其实这不是手机的问题,而安卓运行机制的缺陷。虽然安卓系统512MB也能流畅运行,但这仅仅是系统流畅,现在手机APP都…

全网最新:面向Android开发中的“卡顿问题及解决方法”

前言 Android开发中卡顿问题一直是个比较棘手又重要的问题,严重影响用户体验;卡顿是人的一种视觉感受,比如我们滑动界面时,如果滑动不流畅我们就会有卡顿的感觉,这种感觉我们需要有一个量化指标,在编程时如…

Android 卡顿调研

/ 今日科技快讯 / 近日,新华社发文评价盲盒经济称,盲盒不仅成为一个经济现象,也反映了当下中国年轻人,特别是“95后”一代的心理和生活状态。惊喜和期待的背后,“盲盒热”所带来的上瘾和赌博心理也在滋生畸形消费&…

安卓-页面卡顿-分析方法

界面卡顿影响的页面 : ListViewScrollView有动画的页面 分析步骤 打开调试开发者选项,GPU呈现模式分析如果蓝色部分比较高,说明是UI线程性能问题红色部分比较高,应该是DrawList比较复杂,这部分可能跟蓝色部分相关。目…

Android手机为何不再卡顿?性能优化才是安卓起飞关键

现在谈到挂载 Android系统的 手机,大部分人的印象早已不像前几年,几年前的安卓机那是用了一段时间就变得有点卡顿,用1年就卡的动弹不得,不得不每年都更换新机。 为什么以前会出现这种情况呢?其实主要是有些程序在运行…

Android App 反应卡顿解决方案

Android App 反应卡顿,从技术上将就是UI 渲染慢。 UI渲染是从您的应用程序生成一个框架并将其显示在屏幕上的行为。 为了确保用户与您的应用程序的交互顺利,您的应用程序应该在16ms内渲染帧数达到每秒60帧(为什么60fps?&#xff…

中文大模型评估基准:C-EVAL: A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models

论文:https://arxiv.org/abs/2305.08322 网站:C-Eval: A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models 一、导言 随着大语言模型的迅速发展,如何评估一个大模型的能力也成为了一个重要的话题&#xff0c…