庆云古诗词

庆云古诗词

openai推出第三方插件 openai 版本迭代

互联资讯 0

2023年11月20日 每日一猜答案: 答案:ABC
每日一猜答案分析:

openapiv3,openapi3教程,openapi oauth2,openapi ui

(【【网址】】/getcursor/c…)是一款专为编程与人工智能而设计的编辑器。

虽然现在还处于早期阶段,但目前Cursor可以完成以下几个任务:

  • 写作:使用比更智能的AI生成10-100行代码;
  • 差异:请求AI编辑一段代码块,并只查看建议的更改;
  • 聊天:采用类ChatGPT界面,了解当前的文件;
  • 以及更多:请求修复lint错误,在悬停时生成测试/注释等。

Cursor背后的公司于 2023 年在旧金山成立,主要开发利用 LLM 从基层建立的 IDE。

创始团队目前2位,已获得的投资:

  • ,2022 年毕业于麻省理工学院数学与计算机科学专业,Abelian AI 联合创始人
  • ,2022 年毕业于麻省理工学院数学与计算机科学专业。

目前开源的部分是基于+搭建的,源码代码质量不高,我甚至都怀疑代码都是用AI写的…拼凑感很强,另外没有一条测试用例。不过从市场角度也能理解,毕竟要快速抓住市场为主,两位MIT的高材生也没有太多前端工程经验。

整体的架构可以画一张图来表示:

在架构之上主要构建了6个模块:

  • ,语言服务,内置了对TS、Python、C++等常见的语言支持
  • ,一系列设置,比如的key,开启的语言服务等等
  • ,注释,生成注释用
  • ,一些基于CodeMirror的补丁
  • ,核心模块,generation也在这里面,是与AI的交互部分,也是我们本文分析的重点模块
  • ,扩展,比如编辑器相关的扩展,自动补全,等等,目前还没有开放插件能力

至今的官网和代码仓库都十分的简陋,没有详细的文档介绍。

在它的Github主页声称比更智能,但目前只能从作者的Twitter上的一个视频(【【网址】】/amanrsanger…)来评测它的功能,这个视频一共执行了五条指令:

  1. Build the `SearchResult component showing file icons, names, and paths
  2. Connect this component to redux
  3. How do I add a keyboard shortcut in electron?
  4. Where in the code are shortcuts and redux reducers to open file search
  5. Make cmd+p with label open file search

目前支持的交互方式有两种,一个是唤起指令模式,这个指令会调用AI进行generate直接生成代码,另外一种是唤起的聊天模式,会返回的文本显示在一个浮层上。

在上面的指令中,1、2、5应该是指令模式,3、4是聊天模式。

接下来,我们仿照这个视频的环境(它用的是源码并且打开了一个【【淘密令】】文件),深入探索下这些交互背后发生了什么。

基于命令生成代码应该是AI的基本操作,这里的逻辑位于源码文件的 中:

当我们输入回车的时候,就会触发submit的action,而这里面的actionCreator都是经过thunkFactory包裹的,在这里面会看到,最终执行了 。

由于 函数十分冗长,我们截取一下请求部分:

核心就是向 的服务器发送了一个POST请求,目前 的后台代码并未开源,所以对这块是黑盒,不过从命名可以看出这个是一个对话接口,后台的实现中肯定也包含了对AI的调用。 值得注意的是这并不是一个普通的POST请求,它返回的是一个 的MIME,可能大部分同学并不熟悉,实际上它用于实现服务器向客户端推送实时数据流。它是基于HTTP长轮询和服务器发送事件()的一种技术,能够实现服务器与客户端之间的双向通信。

实际上 的server是将信息通过token的方式流式返回的,这样也保证了在界面中类似 那样的体验。

我们来看一下这个请求的入参:

编辑器传递给 有价值的信息包括:

  • 当前的文件信息,包括文件的所有代码,文件名和路径
  • 交互的类型和指令
  • 上下文的Code(源码中可以看到,是按照20行切分的字符串,猜测是提供给模型上下文的,同时避免超过最大token的限制)

基于这些信息,生成合适的,AI就可以生成代码了。

第二条指令与第一条指令不同,是选中了某段文本,然后要求改写,让我们来看看这次发起的请求:

会发现和上次请求的不同之处在于 和 ,分别传入了选中的文本和edit,这样server应该就能更准确地生成相应的prompt。

在edit这个模式下,很容易会触发一个 的请求,这是因为选中的文本,再加上AI返回的内容,很容易就会超过模型最大token的限制,所以 这里还加了一个 接口,用来接上之前不能一次性返回的内容:

可以看到 接口多了一个 字段,用来将上一次AI返回的信息再次传递过去,而接口应该也是根据这个上下文信息要求AI能够续写上之前的内容。

的逻辑在源码中是有一个 作为标识的,如果判断是 模式并且因为token问题被中断了,就会触发 的逻辑:

这个是AI聊天的经典模式,向AI问了一个问题,我们看一下请求:

可以看到这次传参非常简单, 变成了 ,就是向AI提一个问题,不过这里还是一样,传递了当前文件的上下文和光标上下文。

同样是聊天场景,但是这个问题 可以从当前的工程中找到答案,会告诉你在当前工程的哪些文件中有相关的实现,这就相比于纯粹的AI有了显著的进步,意味着可以联系工程上下文给出解决方案了。

其实它的请求并没有什么特殊的,要实现工程上下文,我猜测 在server端可能采用的方案:

  • 有自己的索引,根据索引找到问题关键词相关的工程上下文,提供给模型
  • 实际上在源码中也有一点蛛丝马迹,在获取 的时候, 查找了最近的10个文件,然后实现了一个自己的相似度计算函数,用来判断内容是否匹配,这个方法是用来寻找 Copilot的 Snippet,但我估计后台也有类似的处理。

第五条指令理论上可以自动让编辑器跳转到对应文件,然后修改代码,但我按照视频里面输入指令并没有触发,不过源码里面确实有对应实现,如果有人能够复现这个步骤欢迎告诉我一下。

本文深入分析了 的内部实现,重点关注是怎么结合AI做到代码生成和辅助我们写代码的。可惜的是, 最核心的后台实现并没有开源,这也算是他们目前的商业机密了。不过从客户端的代码中,我们也差不多推敲了一二,大概能猜到它本身的实现思路。

我认为目前 的核心优势是在于免费(现在也开始收费了)和理解项目工程的能力,相比来说,它更想快速抢夺市场,但它的劣势在于挑战了VSCode整个生态。

按照作者的话说,他们畅享的许多能力都不能基于VSCode插件来实现,这点我能够理解,从目前的一些特性来看,比如直接关联工程文件,甚至跳转某个文件直接编辑和diff代码,都是非常灵活的交互,但我认为接下来 面临的核心问题是:

  • gpt4价格不低,虽然有openAI的风投,依旧是成本高昂,按照之前有人评测应该没有用gpt4,不然不可能有这么快的速度,问它会回答gpt3(目前看起来模型已经是被finetune过了,不会再回答是gpt3)
  • 代码完全是赶鸭子上架,不利于后续的维护,而且相对于VSCode整个庞大生态,有太大的差距(我读代码的时候实在无法忍受给作者提交了个优化PR,目前还没被采纳…)
  • 这些新颖的交互后续也有可能被VSCode所借鉴优化,毕竟微软才是最大的投资方,一旦VSCode跟上这个能力支持Copilot X,Cursor将没有立足之地。

openai和chatgpt谁厉害 openai为chatgpt推出新的插件功能

openai和chatGPT 哪个好,openai和chatGPT关系,openai和chatGPT api收费么

三月底,意大利个人数据保护局宣布禁用ChatGPT,并限制开发这一平台的美国人工智能公司OpenAI处理意大利用户信息。

该消息一经发布,就引起了轩然大波,虽然后来意大利副总理曾表示监管机构的举动是“虚伪的”并且缺乏常识,因为“隐私问题涉及几乎所有的在线服务”, 但依旧引起了大众对于ChatGPT数据安全的担忧。

目前对这一情况,OpenAI表示,该公司愿意同意大利当局合作,以确保遵守隐私法规。

意大利数据保护局方面则在今天表示, OpenAI计划当地时间周四向意大利当局提交补救措施,寻求缓解意方担忧。