news 2026/11/5 1:49:16

5行代码给Codag接入新的LLM供应商:开发者实战教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5行代码给Codag接入新的LLM供应商:开发者实战教程

【免费下载链接】codag-visualizer

Visualize AI/LLM workflows in your codebase.

项目地址:https://gitcode.com/gh_mirrors/co/codag-visualizer
点击查看免费下载

Codag 是一款 VS Code 扩展,能自动扫描代码库中的 LLM API 调用与 AI 框架,把复杂的 AI/LLM 工作流渲染成可交互的可视化图谱。如果你使用的模型服务不在 Codag 内置的 20 多个供应商列表里,别担心——官方设计让"接入新的 LLM 供应商"只需5 行代码,且完全不需要改动后端。本文带你从零走通整个流程。

为什么 Codag 加供应商如此简单?

先理解 Codag 的架构设计,你就能明白"5 行"是怎么做到的:

  • 单一事实来源:所有供应商的检测模式都集中在 frontend/src/providers.ts 这一个文件里。注释里写得很直白:"To add a new provider, add an entry to LLM_PROVIDERS array."(添加新供应商 = 往LLM_PROVIDERS数组里加一条记录)
  • 派生列表自动生成:文件底部的ALL_IMPORT_PATTERNS、QUICK_SCAN_PATTERNS等导出项都是通过flatMap从数组自动展开的。你只写一份数据,所有下游功能(快速扫描、导入识别、调用识别)全部自动生效
  • 无需后端改动:官方 CONTRIBUTING.md 明确说明"No backend changes needed",改完前端编译即可

也就是说,你只需要回答两个问题:你的 SDK 的 import 长什么样?你的 API 调用长什么样?

实战:给 Codag 接入 LiteLLM 供应商

假设你的项目用了 LiteLLM 这类聚合 SDK,而 Codag 内置列表里还没有它。三步搞定:

第 1 步:观察你的代码特征

打开你的业务代码,确认两个模式:

from litellm import completion # import 特征 resp = completion(model="gpt-4o", messages=msgs) # 调用特征

第 2 步:向 LLM_PROVIDERS 数组添加一个条目

打开 frontend/src/providers.ts#L46,在LLM_PROVIDERS数组的任意位置加入一个对象(对照 DeepSeek 等现有条目 providers.ts#L219-L228 即可理解每个字段):

{ id: 'litellm', displayName: 'LiteLLM', identifiers: ['litellm'], importPatterns: [/from\s+litellm\s+import/i, /import\s+litellm/i], callPatterns: [/completion\s*\(/], },

5 行核心代码,字段含义如下:

字段作用填写建议
id唯一标识(小写)用于内部标识与缓存,保持短小
displayNameUI 中显示的名称面向用户的品牌名
identifiers简单字符串匹配(小写)SDK 名、包名,用于快速文本扫描
importPatterns正则:检测 SDK 导入覆盖 Pythonfrom x import和 JSimport ... from 'x'等写法
callPatterns正则:检测 API 调用(可选)如.chat.completions.create这类标志性调用

💡 参考 providers.ts#L50-L64 中 OpenAI 的写法:同时覆盖from openai import、new OpenAI(等多种语言习惯,正则建议加i标志忽略大小写。

第 3 步:编译并重启扩展

cd frontend npm run compile

回到 VS Code 重新加载窗口(Developer: Reload Window),用 Codag 分析包含 LiteLLM 调用的文件,图中对应节点就会带上新的供应商标签 ✅

接入后这些能力会自动点亮

新条目加入数组后,以下模块零改动地开始识别你的供应商,这正是"单一事实来源"设计的价值:

  • 快速预扫描:static-analyzer.ts 直接使用QUICK_SCAN_PATTERNS,在深入解析前先过滤出"可能含 LLM 代码"的文件
  • 导入语句识别:cache.ts 调用isLLMImport()判断缓存中的导入是否属于 LLM SDK
  • API 调用识别:tree-sitter/extractors.ts 用isLLMCall()与mightContainLLM()配合 tree-sitter 精确提取工作流节点
  • 供应商标签:local-graph-updater.ts 通过identifyProvider()把识别出的供应商 ID 打到图谱节点上,实现"点击节点 → 看到用的是哪家模型"

常见坑与 FAQ

Q:identifiers写得太宽泛会怎样?identifiers走的是简单字符串包含匹配(小写),像openai这样短的词可能误伤普通文本。建议优先依赖更精确的importPatterns正则,identifiers只保留高置信度的特征词。

Q:为什么我的文件没被识别为工作流?Codag 判定工作流需要"客户端导入 + API 调用"同时出现(或使用了已知框架)。只写callPatterns而没有写对importPatterns,文件会被漏掉——两个正则都要覆盖你代码的实际写法。

Q:这里的"供应商"和 Codag 自己的分析引擎是同一回事吗?不是。本文说的供应商是 Codag在你的代码里检测的模型服务;而 Codag 自己调用 LLM 做分析时用的是 Gemini,通过 backend/config.py 读取backend/.env中的gemini_api_key配置,两者互不影响。

Q:后端 backend/analyzer.py 里也有一份模式列表,要同步改吗?不用。按官方贡献指南,添加供应商只需改前端providers.ts,该文件是供应商检测的权威来源。

进阶:还可以扩展哪些检测列表?

providers.ts里除了LLM_PROVIDERS,还有两个数组值得了解:

  • LLM_FRAMEWORKS(providers.ts#L412):框架列表,含 LangChain、LangGraph、CrewAI 等。接入新框架同样是加一个条目
  • AI_SERVICE_DOMAINS(providers.ts#L517):语音、视频、图像生成类服务的域名匹配,只需追加一行正则

小结

步骤操作耗时
1观察目标 SDK 的 import 与调用写法~1 分钟
2向LLM_PROVIDERS添加 5 行条目~5 分钟
3npm run compile并重新加载窗口~1 分钟

Codag 用"单一事实来源 + 自动派生"的设计,把扩展一个 LLM 供应商的成本压到了极限。如果你的团队在用冷门或自研的模型网关,这 5 行代码就是你的入场券 🚀

【免费下载链接】codag-visualizer

Visualize AI/LLM workflows in your codebase.

项目地址:https://gitcode.com/gh_mirrors/co/codag-visualizer
点击查看免费下载
上一篇:Knowledge Agent Template 架构深度剖析:Nuxt、NuxtHub 与 Vercel Workflow 技术栈全解析
下一篇:如何挑选 decider 模型:0.8B 到 35B-MoE 共10个变体的完整对比清单

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/5 1:47:59

MinIO源码深度解读-第1章第2节-启动流程-从main.go到HTTP服务器的诞生

MinIO源码深度解读 - 第2章第2节:启动流程——从 main.go 到分布式集群的诞生 这篇文章带你走完 MinIO 从启动到就绪的完整流程,逐行分析初始化序列。读完你会知道:为什么第一次启动要等 30 秒、为什么换盘后集群起不来、启动失败该看哪里。 …

作者头像 李华
网站建设 2026/11/5 1:45:04

me3函数钩子实战:基于retour的Detour与Trampoline技术完整指南

【免费下载链接】me3 A framework for modding and instrumenting games. 项目地址: https://gitcode.com/gh_mirrors/me3/me3 点击查看 免费下载 me3 是一个用于游戏 Mod 开发与调试的框架(A framework for modding and instrumenting games&#xff0…

作者头像 李华
网站建设 2026/11/5 1:44:01

快速搞定黑苹果 OpenCore EFI:OpCore Simplify 自动化生成完全指南

快速搞定黑苹果 OpenCore EFI:OpCore Simplify 自动化生成完全指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 想少折腾地把 OpenCore…

作者头像 李华
网站建设 2026/11/5 1:41:53

金蝶标准功能不够用时,二次开发的取舍边界

金蝶标准功能不够用时,二次开发的取舍边界ERP 项目走到蓝图阶段,几乎一定会遇到这个卡点:某个具体做法,标准功能覆盖不了。车间要按工序算计件工资,标准功能里没有这套算法;老板要一张按订单维度的毛利表&a…

作者头像 李华