CodeGeex 插件在 Web 端编辑器 (Monaco Editor) 的集成指南

月夜之吻

月夜之吻

2026-06-24

480人浏览

原创

要在web端monaco editor中集成codegeex ai能力,需通过调用其后端api实现智能补全、解释等功能:先确认/v1/completions等接口支持cors;再通过registercommand或completionitemprovider注入交互逻辑;所有请求须经自建后端代理,禁止前端硬编码token,并在ui中标注ai生成内容。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

codegeex 插件在 web 端编辑器 (monaco editor) 的集成指南

你想在 Web 端 Monaco Editor 中直接调用 CodeGeeX 的 AI 编程能力,比如光标处智能补全、选中代码一键解释或翻译,但发现官方没提供现成的 Web 集成包,也不清楚如何把插件逻辑注入到浏览器环境中的 Monaco 实例里。

确认 CodeGeeX Web 能力边界

CodeGeeX 官方未发布独立 Web SDK,其核心能力(如代码生成、注释、翻译)全部依赖后端 API 服务。Web 端集成本质是:前端 Monaco Editor 拿到用户选中文本或光标上下文 → 序列化为请求体 → 发起 HTTPS 请求到 CodeGeeX 公共 API 或你自署的 service → 解析响应 → 将结果以编辑操作方式注入 Monaco 编辑器。

这一步必须做:访问 https://codegeex.cn/api/docs 查看当前可用的 OpenAPI 文档版本,重点确认 【/v1/completions】和【/v1/explain】接口是否开放 Web CORS 权限】。若文档未明确标注支持 CORS,直接调用会触发跨域拦截,后续所有步骤无效。

注入 CodeGeeX 交互逻辑到 Monaco

方法一:通过 Monaco 的 command 注册快捷键入口

在 Monaco 初始化完成后,调用 monaco.editor.registerCommand 绑定快捷键,例如 Ctrl+Enter 触发补全:

monaco.editor.registerCommand('codegeex.inlineComplete', async (accessor, ...args) => {
const editor = accessor.get('editor');
const model = editor.getModel();
const selection = editor.getSelection();
const selectedText = model.getValueInRange(selection);
const context = model.getValue() + '\n' + model.getLinesContent()[selection.startLineNumber - 1];
const response = await fetch('https://api.codegeex.cn/v1/completions', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' },
body: JSON.stringify({ prompt: context, max_tokens: 128 })
});
const data = await response.json();
if (data.choices?.[0]?.text) {
editor.executeEdits('codegeex', [{ range: selection, text: data.choices[0].text }]);
}
});

方法二:监听 editor.onDidChangeModelContent 动态触发(慎用)

仅当用户停顿输入超过 800ms 时才发起请求,避免高频调用拖慢编辑器。需用 setTimeout + clearTimeout 手动维护防抖 timer,【务必在 editor.dispose() 时清除 timer,否则内存泄漏】

适配 Monaco 的语言服务协议(LSP)补全机制

第一步:启用 Monaco 内置的 suggest 功能扩展点

调用 monaco.languages.registerCompletionItemProvider 注册一个 language ID(如 'javascript')的补全提供者。

php获得文件的mime type类
php获得文件的mime type类

php获得文件的mime type类

下载

第二步:构造 CompletionList 响应

每次用户输入触发 suggest 时,你的 provider 必须返回一个 CompletionList 对象,其中 items 数组每个元素至少含 label 和 insertText 字段。CodeGeeX 返回的候选文本需经 clean-up 处理:移除首尾空白、截断过长行、转义特殊字符(如 $、{、}),否则 Monaco 渲染异常。

第三步:设置触发条件

在 provider 的 triggerCharacters 字段中加入 '/'、'@'、'.' 等常用触发符,但不要加空格——空格会干扰用户正常输入,且 CodeGeeX 补全通常需明确上下文边界。

第四步:控制补全弹窗位置

Monaco 默认将建议框锚定在光标右侧。若 CodeGeeX 返回的是多行代码块,需在 CompletionItem 中设置 documentation 字段为 markdown 格式,并配置 range 为覆盖整行或更大范围,否则插入后格式错乱。

安全接入与 Token 管理

① 用户登录态必须由前端应用自身维护,严禁在前端代码中硬编码 CodeGeeX API Token。

② 所有请求必须经由你自己的后端代理中转:前端 → /api/codegeex/proxy → CodeGeeX API。代理层负责校验用户权限、限流、日志审计,并剥离敏感 header。

③ 在 Monaco 编辑器 UI 上显式标注“AI 生成内容”,并在每次插入前显示灰色提示条:“CodeGeeX 建议 · 可编辑 · 不保证正确性”。

④ 若用户未登录,点击补全按钮时跳转至 https://codegeex.cn/login?redirect=your-web-app-url,登录成功后回调地址携带临时 code,由你的后端兑换 access_token 并存入 httpOnly cookie。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

codegeex

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
CodeGeeX下载安装教程合集
CodeGeeX下载安装教程合集

提供CodeGeeX最新版下载地址、历史版本下载、VS Code安装教程、JetBrains安装教程及常见安装问题解决方案。

2026.06.16

99

15

CodeGeeX代码生成教程合集
CodeGeeX代码生成教程合集

汇总CodeGeeX代码生成技巧、代码补全教程、单元测试生成、代码优化及实际开发案例。

2026.06.16

81

31

CodeGeeX大模型教程合集
CodeGeeX大模型教程合集

详细介绍CodeGeeX底层模型能力、多语言代码生成效果、模型架构及应用场景

2026.06.16

75

10

CodeGeeX VSCode插件教程大全
CodeGeeX VSCode插件教程大全

专注CodeGeeX VS Code插件的安装配置、功能使用、快捷键及开发实践。

2026.06.16

162

15

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

10

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

7

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

10

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

5

10

火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

1

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CodeGeex使用手册
CodeGeex使用手册

共0课时 | 0人学习