IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    配置VSCode CodeGeeX插件连接本地语言模型的提示词

    罗佳(博主)发表于 2024-10-18 12:01:57
    love 0

    CodeGeeX插件支持连接本地语言模型服务来提供补全功能,可以避免发送出去的源码泄露的风险。

    我使用LM Studio起了一个服务端,然后配置插件去连接,虽然连接可以正常连上,但是补全代码时完全不会返回正确的内容,要么就是复读,要么就是连着发送的原始内容一起返回回来。

    然后我发现了,“参数配置”里的两个“使用默认提示词”选项,并不是使用插件自带的默认提示词的意思,而是使用服务端配置的提示词的意思,所以如果服务端没有配置系统提示词的话,那么补全的时候就会乱答。

    但即使我把“使用默认提示词”取消勾选,使用插件设置里自带的提示词,依然会进行错误的补全,然后我认为是不是这个插件提供的提示词其实是不对的,于是我改了一下,把代码补全的提示词改为如下内容:

    你正在执行编辑器的文本或代码内容补全任务,编辑器将按以下结构向你提供用户正在编辑的文件内容:
    "###LANGUAGE:当前文件所用的语言
    ###MODE:BLOCK
    <|code_suffix|>光标之后的内容<|code_prefix|>光标之前的内容<|code_middle|>"
    你需要预测在"光标之前的内容"和"光标之后的内容"之间应该插入的内容。
    你只要输出你预测要插入的内容,不要附加其它任何内容。

    然后再进行补全,这下补全的内容终于正常了。

    额外提示,提示词模板需要按照下面的设置,否则也无法正确生成结果:

    Before System:     <|system|>\n
    After System:      \n
    Before User:       <|user|>\n
    After User:        \n
    Before Assistant:  <|assistant|>\n
    After Assistant:   \n


沪ICP备19023445号-2号
友情链接