File tree Expand file tree Collapse file tree 1 file changed +30
-0
lines changed
Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Original file line number Diff line number Diff line change 1+ 我用vscode开发插件,语言是ts,使用openai的库
2+ 请教我如何使用tools
3+ 我需要让模型读取多个工程里的长代码文件
4+ 需要提供搜索,切块,等函数方便他在有限上下文情况下定位代码来重构
5+ 但是我不会写tools,请给我具体例子,多给一些
6+ 注意,我指的是 通过 openai.chat.completions.create 传递 tools字段
7+ 你不需要给我vscode 插件的搭建代码
8+ 主要是研究如何通过tools实现我的需求
9+ 给我详细的代码和讲解
10+ 要讲清楚 tools字段是如何运作,如何生效的,工作原理是怎样的
11+ 有哪些注意点和局限性
12+ 适合做什么
13+
14+
15+ 你对实际使用的场景不了解,我给你举个例子
16+ 有一个状态机调试工具(游戏npc状态机),是图形化的,以前的版本使用了一个称为EasyX的库来绘制所有的状态机图
17+ 以及UI、按钮(自己实现的按钮绘制和事件点击响应)
18+ 且这个状态机调试器支持同时显示多个状态机图,跟踪他们的节点变动
19+ 但是由于EasyX库只是一个图形教学库,很简陋,不支持同时多个画布
20+ 导致这个调试器为了同时显示多个图搞成了多进程,互相的通信很复杂,代码非常难维护
21+ 现在我用IMGUI进行了尝试,写了一个demo,证明IMGUI也可以封装后绘制类似的状态机图以及按钮和UI已经有现成的实现了,而且支持多线程,不用多进程
22+ 由于原来的代码里还有很多接入现有系统的功能,我不能整个抛弃
23+ 我希望AI借鉴这个Demo,把EasyX换掉,模仿我Demo的方法重构整个工程
24+ 但是这样就交给大模型,大模型从来就没有读过我的代码,并不知道里面有哪些函数
25+ 虽然这个调试器的代码并不多,但是想整个装入大模型的上下文长度,还是装不下的,要分10次以上才能装入
26+ 所以你一开始的假设让模型去制定计划是错的,模型多整个工程的代码都没有通读一遍
27+ 怎么知道从哪里开始呢?连从哪个函数开始着手都不知道。也就是都没找到函数入口,流程怎么开始和经过哪些函数。这样怎么开始搜索呢?靠猜么?而且向量数据库对代码其实没啥用,因为代码并不是人类语言,放入向量数据库切块的时候早就丢失了很多上下文信息
28+ 靠谱的方法可能是一开始就把代码切块,逐个给大模型理解
29+ 然后把输出的理解总结和代码块一起嵌入向量反而是合理的,你觉得呢?
30+ 综合以上,你重新思考一下
You can’t perform that action at this time.
0 commit comments