Ollama的VS代码
一个强大的VS Code扩展,将Ollama语言模型直接带入您的开发环境,并提供完整的MCP(模型上下文协议)服务器支持。
✨ 特性
🤖 本地AI集成
- 在VS Code中本地运行Ollama语言模型
- 支持所有Ollama兼容模型(Calma、Mistral、CodeCalma等)
- 实时流媒体响应
- 与代码进行上下文感知对话
💬 交互式聊天界面
- 干净、现代的聊天界面,支持markdown
- 系统提示配置
- 具有搜索和组织功能的聊天历史管理
- 多个并发聊天会话
🔧 MCP服务器支持
- 全模型上下文协议(MCP)集成
- 连接到外部MCP服务器以增强功能
- 支持该工具的模型的工具调用支持
- 自动工具发现和管理
🎯 以开发人员为中心的功能
- 从所选文本生成代码
- 将人工智能生成的内容直接插入编辑器
- 模型动态切换
- 可配置的API设置
- 全面的日志记录和调试
📊 智能模型管理
- 自动模型发现和状态跟踪
- 每种型号的刀具支撑检测
- 模型详细信息和元数据显示
- 在对话之间轻松切换模型
🚀 快速开始
先决条件
- 安装Ollama:下载并安装 没有 在您的系统上
- 拉一个模型:使用Ollama CLI安装至少一个模型:
ollama pull llama2
# or
ollama pull codellama
# or
ollama pull mistral安装
- 安装扩展:
- 打开VS代码 - 转到扩展(Ctrl+Shift+X/Cmd+Shift+X) - 搜索“Ollama for VS Code” - 单击安装
- 启动Ollama:
- 跑 ollama serve 在您的终端中,或 - 使用扩展程序的“Ollama:Start”命令
- 开始聊天:
- 单击活动栏中的Ollama图标 - 点击“开始新聊天”或使用Ctrl+Shift+P→ “Ollama:开始新聊天”
📖 使用指南
基本聊天
- 开始新聊天:
- 单击活动栏中的Ollama图标 - 点击“+”按钮或使用“Ollama:开始新聊天” - 从下拉列表中选择您喜欢的型号
- 聊天界面:
- 在输入框中键入您的消息 - 使用系统提示字段设置AI行为 - 点击“发送”或按Enter键发送您的消息 - 实时查看流媒体响应
- 管理对话:
- 从侧边栏访问聊天记录 - 通过右键单击重命名聊天记录 - 删除不需要的对话 - 搜索您的聊天记录
代码生成
- 从选择:
- 在编辑器中选择代码 - 右键单击并选择“Ollama:从选择中生成” - 或者使用命令面板(Ctrl+Shift+P)
- 插入生成的代码:
- 查看AI的响应 - 单击“插入”将代码添加到编辑器中 - 根据需要进行修改
MCP服务器集成
- 添加MCP服务器:
- 转到侧栏中的“MCP服务器”部分 - 单击“+”按钮添加新服务器 - 配置服务器详细信息(名称、类型、命令等)
- 配置服务器:
- 右键单击服务器进行配置 - 设置stdio或SSE连接 - 测试服务器连接
- 使用MCP工具:
- 启动MCP服务器 - 可用工具将自动集成 - 具有工具支持的模型可以在对话中使用这些工具
⚙️ 配置
扩展设置
通过访问设置 File > Preferences > Settings 并搜索“ollama”:
| 设置 | 说明 | 默认值 |
|---|---|---|
vscode-ollama.apiHost | Ollama API主机 | localhost |
vscode-ollama.apiPort | Ollama API端口 | 11434 |
vscode-ollama.defaultModel | 新聊天的默认模式 | llama2 |
vscode-ollama.showStreamingOutput | 启用实时流媒体 | true |
vscode-ollama.enableDebugLogs | 启用调试日志记录 | true |
vscode-ollama.enableErrorStackTraces | 在错误中包含堆栈跟踪 | false |
vscode-ollama.productionMode | 抑制非错误日志 | false |
MCP服务器配置
MCP服务器可以配置以下选项:
- 名字:服务器的显示名称
- 类型:连接类型(stdio或sse)
- 命令:启动服务器的命令
- 参数:命令行参数
- 环境:环境变量
- 工作目录:服务器的工作目录
🛠️ 发展
从源头构建
- 克隆存储库:
git clone https://github.com/your-username/vscode-ollama.git
cd vscode-ollama- 再进行:
npm install- 构建扩展:
npm run build- 以开发模式运行:
- 在VS Code中按F5启动新的扩展开发主机窗口 - 或者在调试器中使用“运行扩展”配置
可用脚本
| 脚本 | 描述 |
|---|---|
npm run compile | 将TypeScript编译为JavaScript |
npm run watch | 注意更改并重新编译 |
npm run build | 清理和编译 |
npm run build:prod | 优化生产构建 |
npm run lint | 运行ESLint |
npm run lint:fix | 自动修复ESLint问题 |
npm run test | 运行测试 |
npm run package | 创建VSIX包 |
项目结构
vscode-ollama/
├── src/
│ ├── extension.ts # Main extension entry point
│ ├── models/ # Type definitions
│ │ ├── ollamaModel.ts # Ollama API models
│ │ └── mcpModel.ts # MCP protocol models
│ ├── services/ # Core services
│ │ ├── ollamaService.ts # Ollama API integration
│ │ ├── mcpServerService.ts # MCP server management
│ │ ├── logger.ts # Logging service
│ │ └── handler/ # MCP connection handlers
│ ├── provider/ # VS Code providers
│ │ ├── chatViewProvider.ts # Chat webview provider
│ │ ├── modelTreeDataProvider.ts # Models tree view
│ │ ├── chatHistoryProvider.ts # Chat history management
│ │ └── mcpTreeDataProvider.ts # MCP servers tree view
│ ├── webview/ # Web UI components
│ │ ├── chat.html # Chat interface
│ │ ├── mcpSettings.html # MCP configuration UI
│ │ ├── css/ # Stylesheets
│ │ └── js/ # Frontend JavaScript
│ ├── ui/ # UI components
│ └── utils/ # Utility functions
├── media/ # Extension icons and assets
├── .vscode/ # VS Code configuration
├── package.json # Extension manifest
├── tsconfig.json # TypeScript configuration
└── webpack.config.js # Webpack build configuration调试
- 设置断点:在TypeScript代码中添加断点
- 启动调试器:按F5或使用“运行扩展”配置
- 调试控制台:使用调试控制台检查变量
- 扩展主机日志:检查输出面板中的扩展日志
测试
# Run tests
npm test
# Run tests with coverage
npm run test:coverage🤝 贡献
我们欢迎捐款!以下是您可以提供帮助的方式:
报告问题
- 先检查现有问题
- 提供详细的复制步骤
- 包括系统信息(操作系统、VS代码版本、Ollama版本)
- 附上相关日志
提交拉取请求
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 进行更改
- 如果适用,添加测试
- 运行linting:
npm run lint:fix - 提交您的更改:
git commit -m 'Add amazing feature' - 推到分支:
git push origin feature/amazing-feature - 打开拉取请求
开发指南
- 遵循TypeScript的最佳实践
- 使用有意义的提交消息
- 为公共API添加JSDoc注释
- 确保所有测试通过
- 根据需要更新文档
测试
该扩展包括一个遵循VSCode扩展测试标准的全面测试套件:
- 运行基本测试:
npm test - 运行完整的测试套件:
npm run test:full - 在监视模式下运行测试:
npm run test:watch - 跑步时覆盖:
npm run test:coverage
测试结构
test/
├── simple-test.js # Basic functionality tests
├── fixtures/ # Test data and mock objects
├── mocks/ # Mock implementations
└── suite/ # Comprehensive test suites
├── services/ # Service layer tests
├── provider/ # Provider tests
└── utils/ # Utility function tests测试类别
- 单元测试:单独测试单个函数和类
- 集成测试:测试组件交互和工作流程
- 模拟测试:使用模拟的VSCode API和外部服务进行测试
- 结构测试:验证项目结构和配置
有关详细的测试信息,请参阅 test/README.md.
📋 需求
- VS代码:1.85.0或更高
- Node.js18.x或更高(用于开发)
- 没有:安装了至少一个型号的最新版本
🔒 隐私和安全
- 本地处理:所有AI交互都在您的机器上本地发生
- 无数据收集:不向外部服务发送用户数据
- 安全通信:MCP服务器使用安全的本地连接
- 可配置日志记录:控制记录的信息
🆘 故障排除
常见问题
Ollama没有开始:
- 确保Ollama已安装并位于您的路径中
- 检查端口11434是否可用
- 试着跑步
ollama serve手动地
模型未加载:
- 验证模型是否已安装:
ollama list - 检查Ollama服务是否正在运行
- 使用扩展命令刷新模型
MCP服务器未连接:
- 验证服务器配置
- 检查服务器日志是否有错误
- 手动测试服务器连接
- 确保服务器命令具有适当的权限
扩展未激活:
- 检查VS代码版本兼容性
- 重新加载窗口(Ctrl+Shift+P→ “开发人员:重新加载窗口”)
- 检查输出面板是否有错误消息
获取帮助
- 文档:查看此README和内联帮助
- 问题:在GitHub上搜索现有问题
- 讨论:使用GitHub讨论提问
- 日志:启用调试日志记录以获取详细信息
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
______________________________________________________________________
由以下材料制成❤️ 面向开发者社区
如需更多信息,请访问我们的 .
