(长期有效)接入第三方 OpenAI 兼容模型到 GitHub Copilot

目前 GitHub Copilot 仅支持接入国外的几家模型提供商,无法直接调用 OpenAI 兼容的自定义 API 进行扩展。参考相关解决方案,我总结了一下Copilot中接入OpenAI 兼容 API 的方法。
实现方法主要分为两种:

方案一:修改 Copilot Chat 源代码
在模型选择器中新增自定义提供商选项。

方案二:API 兼容适配
将 OpenAI 兼容的自定义 API 虚拟化封装为与 Ollama 兼容的 API(运行期间占用 Ollama 端口),从而利用 Copilot 模型选择器中原生的 Ollama 选项。

方法一(目前存在问题)

具体做法可参考修改Copilot chat插件增加自定义模型提供商


这里只说一下这个方法存在的问题:

  1. 官方开源的Copilot chat插件版本通常滞后于最新版,可能存在未来兼容性问题
  2. 打包过程的npm install环节容易报错,需要多次调试
  3. 重要 当前打包后的Copilot chat插件在VSCode中无法显示模型选择器。虽然原作者指出这是由于插件要求的VSCode最低版本与实际版本不匹配所致,但即便修改了package.json中的vscode版本号,问题依然存在。

方法二(长期有效)

这一方法基于Github上的oai2ollama项目,它通过命令行工具启动一个服务,将OpenAI兼容API封装为Ollama兼容API。特别适合为不支持自定义OpenAI API但支持Ollama的编码代理(如VS Code中的GitHub Copilot)提供自定义模型支持。
这一项目的灵感来源于vscode-copilot GitHub讨论区中关于添加自定义 OpenAI 端点配置(基础 URL 和模型参数)到协同聊天设置的讨论。值得注意的是,官方已采纳该提议,未来Copilot版本可能直接支持第三方模型。
言归正传,具体操作步骤如下:

  1. 安装UV工具
    详细安装教程可参考:Windows系统UV安装及路径配置指南
    • 执行uv tool install进行永久安装
    • 创建批处理文件(双击运行):

配置VS Code
在Copilot模型选择器中选择"Ollama",稍候将显示第三方模型列表。

模型选择界面

运行转换程序
在命令行直接执行(无需本地下载项目):

uvx oai2ollama --api-key your_api_key --base-url provider_base_url 

如需长期使用,可选择以下任一方式:

@echo off powershell -NoExit-Command"uvx oai2ollama --api-key your_api_key --base-url provider_base_url"

常见问题:若未显示模型列表,请检查命令行报错信息。多数情况下,在base-url末尾添加/v1即可解决。

Read more

数组去重性能优化:为什么Set和Object哈希表的效率最高

数组去重性能优化:为什么Set和Object哈希表的效率最高

目录 数组去重性能优化:为什么Set和Object哈希表的效率最高 一、数组去重的基本概念 二、常见的数组去重方法 三、Set和Object哈希表综合复杂度为O(n)的秘密 1、数据结构区别 2、Set去重的底层原理 3、Set去重的鲁棒性 4、Set去重的局限性 四、总结         作者:watermelo37         ZEEKLOG万粉博主、华为云云享专家、阿里云专家博主、腾讯云、支付宝合作作者,全平台博客昵称watermelo37。         一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、LLM均有涉猎。 --------------------------------------------------------------------- 温柔地对待温柔的人,包容的三观就是最大的温柔。 --------------------------------------------------------------------- 数组去重性能优化:为什么Set和

By Ne0inhk

从算法瓶颈到性能飞跃:实战优化策略深度解析

从算法瓶颈到性能飞跃:实战优化策略深度解析 【免费下载链接】PythonAll Algorithms implemented in Python 项目地址: https://gitcode.com/GitHub_Trending/pyt/Python 在当今数据爆炸的时代,算法优化已成为提升系统性能的关键手段。面对日益复杂的计算需求,传统的算法实现往往难以满足现代应用对速度和效率的严苛要求。本文将通过几个典型场景,展示如何通过深度优化实现算法性能的质的飞跃。 当传统算法遇到现实瓶颈 案例一:背包问题的内存墙困境 想象这样一个场景:一个电商平台需要为价值数百万的商品组合进行最优定价,这本质上就是一个超大容量的背包问题。传统的二维动态规划解法在面对大规模数据时,会遭遇严重的内存瓶颈。 问题诊断: 在dynamic_programming/knapsack.py中,标准实现使用了O(n*W)的空间复杂度。当商品数量达到10000,背包容量达到100000时,内存占用将达到惊人的1GB以上,这在实际应用中是完全不可接受的。 优化策略:内存访问模式重构 通过分析算法的状态转移过

By Ne0inhk
算法思想之深度优先搜索(DFS)、递归以及案例(最多能得到多少克黄金、精准核酸检测、最富裕的小家庭)

算法思想之深度优先搜索(DFS)、递归以及案例(最多能得到多少克黄金、精准核酸检测、最富裕的小家庭)

深度优先搜索(DFS)、递归 * 深度优先搜索(Depth First Search,DFS)是一种用于遍历或搜索树或图的算法。在 DFS 算法中,从起始节点开始,沿着一条路径尽可能深地访问节点,直到到达叶子节点或者无法继续前进为止。然后退回到最近的一个有未探索节点的分支节点,继续探索其他路径,直到所有节点都被访问过为止。 * 深度优先搜索常常用于解决以下类型的问题:深度优先搜索是一种简单而强大的算法,可以解决许多实际问题。 * 图遍历:在无向图或有向图中寻找特定节点之间的路径、判断图的连通性等。 * 连通性问题:判断图中是否存在环、判断图的强连通分量等。 * 组合问题:生成排列、组合或子集等组合型问题。 * 寻路问题:求解从起始点到目标点的最短路径或所有可行路径。 * 递归问题:通过递归实现深度优先搜索,例如二叉树的遍历等。 小华最多能得到多少克黄金 * 题目描述小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n-1] 和 [0, m-1]。在横坐标和纵坐标的数位之和不大于 k

By Ne0inhk