linux.do
21K subscribers
117K photos
195 videos
115 files
250K links
linux.do最新话题和热议话题
Download Telegram
【开源】Unify Chat Provider —— 为 Github Copilot 接入自定义模型的 VS Code 扩展

前言
折叠内容 (click for more details)

优势

在我开发这个扩展之前已经有好几个扩展(GCMP、Addi…)实现了同样的功能。

但我仍然花时间开发这个扩展的原因有三点:

1. 用户体验(UX)
2. 无法发挥出模型的最佳性能
3. API 兼容性

为什么无法发挥出模型的最佳性能?

当实际接入过 API 就会发现这件事没有那么简单。

如果你对 AI 直接下令,它可能在几分钟就能写好能够正常对话的版本。

但是也仅此而已,紧接着你可能会发现模型没有思考,或者根本没有触发输入缓存,导致效果欠佳,并且成本陡增。

于是就通过翻阅 OpenAI 或者 Anthropic 的官方文档,找到说明这些特性的文档并丢给 AI 继续实现对这些特性的支持。

实现完成并测试,以为万事大吉的时候,真正的挑战才刚刚开始…

第三方供应商所谓的兼容 XXX API,如果你不仔细阅读它的文档去实现,可能真的就只是兼容而已。

比如 DeepSeek,如果你直接使用 OpenAI 兼容的接口进行对话测试,可能你不会发现任何问题。

但之后的某次对话涉及到思考和工具调用,也就是所谓的 “交错式思考” 时,DeepSeek 接口直接就报错了。

由于 OpenAI Chat Completion API 根本没有设计承载思考内容的字段,所以造成了以下问题:

用户界面上没有思考内容。
交错式思考要求回传思考内容,而由于没有回传导致直接报错。

这时候去阅读 DeepSeek 文档 - 思考模式,才发现 DeepSeek 在 OpenAI 基础上使用非标准字段 reasoning_content 去传递和接受思考内容。

恍然大悟,这才去兼容这个非标准字段。

但这其实是简化过的故事,实际上:

如果你真的没有阅读文档,那么在请求时没有发送另一个非标准字段 thinking,甚至模型可能都没有思考。
你不能够强行添加这些非标准字段,其它严格的供应商在你发送额外字段时会直接抛错拒绝!
你也不能不添加这些非标准字段,有些供应商在缺失字段时也会直接抛错拒绝!
你可能永远发现不了这些问题,因为 DeepSeek 至少还会对缺失 reasoning_content 进行报错,而我接入过的大部分供应商只会在文档警告会影响模型性能,但是不会抛错,导致一直使用的并非满血模型性能。

最后举个例子,在最新的 GLM 4.7 中,引入了一个叫保留式思考(Preserved thinking)的特性:

这要求你必须:

在请求时发送非标准字段 clear_thinking
将完整的、未经过修改的 reasoning_content 回传,并且必须与生成时的序列完全一致

而像这些具有以上五花八门的非标准特性的供应商,直到今天,自己逐个阅读文档并支持了的有约 26 个:
已支持供应商 (click for more details)
对于列出的供应商,使用这个扩展可以无需担心这些问题,能够发挥出模型的最大潜力。

你也可以看看你正在使用的扩展、应用,或者模型的第三方供应商,是否遵循了官方模型文档的最佳实践。

API 兼容性

对于 API 兼容性,这个扩展应该是同类中最全的,均为半手工实现:

OpenAI Chat Completion API
OpenAI Responses API
Google AI Studio (Gemini API)
Google Vertex AI
Anthropic Messages API
Ollama Chat API

国外几个主流模型开发商中,Grok 比较标准地采用了 OpenAI 的协议,所以无需额外兼容,而国内的开发商几乎都采用了 OpenAI 或 Anthropic 的协议。

用户体验(UX)

这方面评价比较主观,所以我就只列一下功能:

原生的 VS Code 可视化用户界面和多语言支持。
内置主流供应商,支持一键配置,无需繁琐配置,开箱即用。
内置主流模型的官方推荐参数,支持一键添加,无需调参即可发挥最大潜力。
支持从官方模型列表一键添加模型,支持自动同步官方模型列表。
开放所有接口参数的调整,支持自定义 Header 与 Request 字段。
支持从其它应用或者扩展一键迁移配置,支持完善的导入导出功能,支持兼容云同步。
支持 URI 一键导入配置。

感谢佬友阅读至此,如果该扩展帮助到了你,请给我一个 🌟 Star 以资鼓励:
github.com

GitHub - smallmain/vscode-unify-chat-provider: Integrate multiple LLM API providers into VS...

Integrate multiple LLM API providers into VS Code's GitHub Copilot Chat using the Language Model API.

欢迎大家使用并积极提交 Issue 或者 PR,我会认真地进行处理。
如果你是模型提供商或者中转站站长,邀请你添加一个 <Add to Unify Chat Provider> 的按钮,方便用户可以在 VS Code 一键使用你的服务!

4 posts - 4 participants

Read full topic

via LINUX DO - 最新话题 (author: SmallMain)

Invalid media:
image
image
image
image
image
image
image
image
image
image
AI Studio 进不去?可能是没有年龄验证!

如题,今天发现怎么样都进不去 AI Studio,换节点也不行,一直自动跳转到 https://ai.google.dev/gemini-api/docs/available-regions?hl=zh-cn 不支持的区域/国家。后在 L 站搜索,发现可能是年龄验证的问题。验证年龄后就可以正常使用了。有类似问题的佬友可以试一试

年龄验证方法

进入 google 账号页,点击个人信息

再点击生日,可以看到自己的验证情况。楼主这里已经完成验证了

验证的方法有三种,分别是身份证件、信用卡💳️、拍照。有佬友试过 p 图做证件,但是后门两个可能更方便一些。我是绑定了信用卡,输完安全码就过了。

类似的主贴:

https://linux.do/t/topic/1277139?u=yosen
5 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: 废寝忘食)

Invalid media:
image
image
元旦青岛旅游 求助

北方小白 第一次去海边 有没有青岛老友 推荐一些地方 或者发一些目前的风景图呢~ :tieba_088:
块引用
3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: ideaflow)
佬们哪里能免费下载到 2026 的跨年 图片呀,投屏到电视上用

类似于这种,但是这个一放大就很糊
5 posts - 5 participants

Read full topic

via LINUX DO - 最新话题 (author: curiosity)

Invalid media: image
kiro 积分即将过期,用不完的佬看过来

这kiro是要用不完了,是1月1日前就要用完这2000吗?继续讨论:

有些佬之前领的或者送的积分可能快过期了,可以考虑让 kiro 梳理旧项目的文档

我昨天对一个小项目进行了梳理,大约用掉了200+积分

反正过期也还是浪费,不如用来干点活:tieba_028:

下面贴一个我梳理文档用的 Steering 给各位佬参考,大家用的话可以根据自己的环境修改使用。

----------------------

inclusion: manual

----------------------

文档生成工作流

当用户请求"更新文档"、“生成文档”、"写文档"时,必须严格遵循此工作流。

核心原则

1. 代码优先 - 所有文档必须基于实际代码分析,禁止臆造
2. 模块内置 - 文档放在对应模块目录内,紧贴代码
3. 分步执行 - 每个模块独立处理,避免上下文溢出
4. 树状组织 - 每个模块有 README.md,内容过长则拆分子文档

文档结构规范

module/

├── README.md # 模块主文档(必需)

├── docs/ # 子文档目录(可选,当主文档过长时)

│ ├── component-a.md

│ └── component-b.md

└── submodule/

└── README.md # 子模块文档



README.md 模板

# 模块名称

> 一句话描述模块职责

## 概述

2-3 段描述模块的核心功能和设计思路。

## 核心组件

- `component_a.py` - 组件A的职责

- `component_b.py` - 组件B的职责

## 使用示例

(代码示例,基于实际代码)

## 子模块

- [submodule_name](./submodule/) - 子模块描述

## 相关文档

- [详细文档](./docs/detail.md)(如有拆分)



拆分规则

单文件超过 200 行 考虑拆分
拆分后主文档保留概述和链接
子文档放入 docs/ 目录

----------------------

工作流步骤

Step 1: 解析目标范围

用户输入格式:更新 <目标> 文档

目标解析规则:

项目全部 → 整个项目所有模块
模块名 → 指定模块(如 scriptstests
模块/子模块 → 指定子模块(如 scripts/generator

执行动作

1. 确认目标范围,列出将要处理的模块清单
2. 询问用户确认后再继续

Step 2: 深度索引(每次必做)

执行动作

0. Get-Location 获取项目目录

1. mcp_mcp_router_set_project_path - 设置项目路径,**必须使用项目绝对路径**

2. mcp_mcp_router_build_deep_index - 构建深度索引

3. mcp_mcp_router_find_files - 获取目标模块文件列表


输出:模块文件清单和结构概览

Step 3: 生成任务清单

基于模块结构,生成任务清单。每个模块/子模块 = 一个独立任务。

任务清单格式

## 文档生成任务

- [ ] Task 1: 分析并生成 `scripts/generator/` 文档

- [ ] Task 2: 分析并生成 `scripts/validator/` 文档

- [ ] Task 3: 分析并生成 `scripts/` 主文档(汇总子模块)

- [ ] Task 4: 更新项目根 README.md(如需要)


执行顺序:叶子模块 → 父模块 → 根文档(自底向上)

执行动作

1. 展示任务清单给用户
2. 询问用户确认或调整
3. 确认后开始逐个执行

Step 4: 执行单个任务

对每个任务,执行以下子步骤:

4.1 模块分析

1. mcp_mcp_router_get_file_summary - 获取每个文件的结构摘要

2. mcp_mcp_router_search_code_advanced - 搜索关键模式:

- 入口点(main, __main__, if __name__)

- 公开 API(def/class 不以 _ 开头)

- 重要常量和配置

3. 读取核心文件,理解实现逻辑



4.2 生成文档结构

基于分析结果,规划文档结构:

确定是否需要拆分
确定子文档划分
确定与其他模块的关联

4.3 编写文档

按照模板编写文档,确保:

所有描述基于代码分析
代码示例来自实际代码
链接指向真实文件

4.4 验证

检查所有文件路径引用是否存在
检查代码示例是否准确

Step 5: 任务完成确认

每个任务完成后:

1. 展示生成的文档内容
2. 标记任务完成
3. 询问是否继续下一个任务

重要:每个任务结束后暂停,等待用户确认再继续下一个任务。这样可以:

避免上下文累积
允许用户审阅和调整
支持断点续做

----------------------

禁止事项

❌️ 不经过代码分析就编写文档内容
❌️ 一次性处理所有模块(必须分任务)
❌️ 跳过用户确认直接执行
❌️ 编造不存在的函数、类或文件
❌️ 使用无效的内部链接
❌️ 使用相对路径(比如 .)作为项目路径

示例对话

用户:更新 scripts 文档

Kiro

1. 我将为 scripts/ 模块生成文档。让我先进行深度索引…
2. [执行索引]
3. 发现以下子模块需要处理:

scripts/generator/
scripts/validator/
scripts/librarian/
scripts/llm/
scripts/ (主模块)

1. 生成的任务清单:

Task 1: scripts/generator/ 文档
Task 2: scripts/validator/ 文档


1. 确认开始执行吗?

用户:确认

Kiro:开始执行 Task 1…
linux.do
kiro 积分即将过期,用不完的佬看过来 从这kiro是要用不完了,是1月1日前就要用完这2000吗?继续讨论: 有些佬之前领的或者送的积分可能快过期了,可以考虑让 kiro 梳理旧项目的文档 我昨天对一个小项目进行了梳理,大约用掉了200+积分 反正过期也还是浪费,不如用来干点活:tieba_028: 下面贴一个我梳理文档用的 Steering 给各位佬参考,大家用的话可以根据自己的环境修改使用。 ---------------------- inclusion: manual ----…
这个Steering 中规定的文档组织结构是我自己习惯的,各位佬可以根据自己的喜好调整,另外里面可能需要调整的部分:

1. MCP 工具, 我用的是 code-index 的相关 tools
2. MAC 或者 Linux 用户获取项目绝对路径的方式

使用方式

1. 添加 Steering
2. 对话中添加该 Steering 文件到上下文
3. 效果:

最后,祝大家新年快乐

4 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: 🅄🄽🄲🄻🄴𝕁𝕚𝕞𝕒𝕠)

Invalid media:
image
image
image
image
image
我如何能完整的体验到claude skills?

不懂就问,我需要体验claude skills是不是需要开通Claude的pro才能实现。用YesCode或者一叶知秋的api能使用么?qwen好像也支持Skills了,有佬测试过么?

3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: sir)

Invalid media:
image
image
image
Golang的Web 框架,Gin 与 GoFiber,哪个性能好呢?

问AI说GoFiber比Gin性能高,到大家的项目都是Gin框架,有什么优缺点吗?

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: H2o)
从大一第一次接触GPT到如今大四已经可以用AI做一个自己的blog了,还挺感慨的

大一第一次接触gpt3.5时,就觉得惊为天人,也是从那时起开始对AI,对LLM感兴趣。那会只会在网页上chat,唯一的技巧就是打磨prompt,写代码也是不停的cv。慢慢的AI发展越来越快,从cursor出世,再到国内的trae,后来国内的大模型也快速发展起来,对我一切都是那么新颖,我不同的使用各种新出的AI,学习别人的方法论,想要做点什么东西,可是每次做出来的都是残次品,最终被抛弃。后面工具越来越强大,我可以用V0快速出一个网站,用其它工具来快速完善它。这也让我的课程作业经常比专业同学要出色不少,嘿嘿。但是呢,用了太久的AI,现在已经不会写代码了感觉。叽里咕噜说了一堆,但是不知道说什么,但是我真的对AI非常感兴趣,真希望未来能在相关的行业就业吧。也希望在毕业前做出一份拿的出手的东西。

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: AnxForever)

Invalid media:
image
image
image
在 GNU/Linux 上安装 m$win 上的常用软件都有一些什么来源?

本帖主要讨论私有软件,如果是自由软件,那么很可能已经有了对 GNU/Linux 的一等支持

先不考虑发行版的特殊支持(如 deepin),也不考虑虚拟机方案。对于通用发行版,是否大概可以分为下述几个渠道?

已知的(从支持程度最好到最低排序):

官方支持,例如 qq, 危信之流
第三方商店,如 flathub 星火(我今天从[[佬友们都是怎么用Linux的? - #30,来自 no_sunny][这个帖子]]里面得知的,之前也从来不知道) 尚未测试,暂时列在第二位
自己 wine
完全不支持,如迅雷之流

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: gnu)
跨年就得去影院看始皇😬

iframe (External Player - 哔哩哔哩嵌入式外链播放器)

3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: pyteng)
登录dmit使用谷歌登录报错

Google Sign-In is unavailable at this time. Please try again later.
f12看到这个错误
Failed to load resource: the server responded with a status of 400 ()

是我环境的问题还是谷歌的问题,还是dimt的问题
400的地址是这个

我没有密码啊,只能谷歌登录,这么一整我都上不去了,重置密码也收不到邮件

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: wuyan🏆)

Invalid media:
image
image
newAPI的首字输出时间怎么还能是负数

4 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: shan_CW)

Invalid media: image
想看看大佬们的壁纸

2025,最后一贴(水)
想看看大佬们的壁纸
俺的

😊
估计今天上班的少了~ 都放假了

32 posts - 15 participants

Read full topic

via LINUX DO - 最新话题 (author: 陈清泉(副院长))

Invalid media: image
ikun九宫格

求一个蔡徐坤的跨年九宫格高清版,感谢

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: Chenpeel)
建议开发购买邀请码,给有需要的人

我建议始皇开放购买邀请码入口给有需要的人,资金可以用于运营社区服务器,以及进行类似idc论坛的征文优秀文章的奖励,或者优秀文章的奖励
【已收到_042佬友赠送的邀请码 感谢】想邀请一位开源大佬进来,没有3级 只能去小黄鱼购买邀请码吗 - 搞七捻三 / 搞七捻三, Lv1 - LINUX DO

19 posts - 13 participants

Read full topic

via LINUX DO - 最新话题 (author: Nexoray)
生活从来都不容易

中午照常点了外卖,依旧是提前1个小时

然后埋头写代码,发觉周边同事在吃饭了,一看时间,已经12点过十多分了,才想起外卖

发现还没有送到,巧合的是这次的小哥之前也帮我送过,当然那次也迟到了。

大概过去了10分钟,接到小哥的电话,说是他后面有好几单都要超时了,能不能帮我放楼下外卖柜旁边,因为放柜子里面要扣他4毛钱。我说干脆我下来拿,他才说他还没有到。

我到楼下,等了不到1分钟,便远远看到一个小哥骑电马儿过来,近了之后,打量了一下,大概50多岁,我很多长辈的年龄也差不多在这一区间。

拿到餐后,他一边说着对不起,一边又请我帮忙带另外一个餐,我看上面的单子和我一个公司,便同意了,顺手的事。 令我没想到的是:

小哥直接给我鞠了一躬,吓我一跳,赶紧说不至于不至于。 赶紧跑路了。

转身那一刻心里五味陈杂。

重点

祝佬友们新年快乐,新年发大财!
PS:

1. 刚吃完,趁着还有点灵感写下来。
2. 别杠,杠就是你赢

10 posts - 10 participants

Read full topic

via LINUX DO - 最新话题 (author: 0x01)
佬们,这个是因为ip脏吗?

ntt的192.204
换了一个机房的66.42也不行

订阅x会员
没到支付页面,就提示我Something went wrong. Please try again

我问了gemini 说是有可能账号被风控了? 这个账号好多年了,但是确实不活跃,没有发过帖子 只是浏览

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: etweoi)

Invalid media: image
求洗发水,养发推荐

熬夜熬的天天掉头发,发际线成M形,有没有佬在养发护发这方面颇有建树的,给孩子提提建议推荐推荐

3 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 阿红臣子)
求绑卡,过了gpt认证,现在就需要绑张卡

求个好心人 或者给个靠谱的链接 我去绑一张卡就行

6 posts - 5 participants

Read full topic

via LINUX DO - 最新话题 (author: happiness)
1