菜单

开发与贡献

相关源文件

本文档为有兴趣为 Open Interpreter 做出贡献的开发者提供了基本信息。内容涵盖项目结构、贡献工作流程、开发指南和未来计划。有关项目路线图和计划功能的信息,请参阅 路线图与未来发展。有关遥测和数据收集实践的详细信息,请参阅 遥测与数据收集

项目结构和架构

Open Interpreter 组织为两个主要组件,各负有不同的职责。

  1. 核心 - 专注于使 LLM 能够通过代码执行安全地控制计算机。
  2. 终端接口 - 用户用来与核心进行交互的基于文本的界面。

项目架构图

来源:docs/ROADMAP.md52-64

代码组织

代码库遵循模块化结构,将核心功能与用户界面分开。

来源:docs/ROADMAP.md52-64

贡献指南

Open Interpreter 欢迎社区的贡献。以下是您可以有效贡献的方式:

问题报告

在创建新问题之前,请检查您的问题是否已在 常见问题解答 中是否已报告。

报告 Bug 时

  1. 清晰描述问题
  2. 包含重现问题的步骤
  3. 说明预期行为
  4. 提供系统信息(Open Interpreter 版本、Python 版本、操作系统)
  5. 如适用,请添加截图

功能请求

  1. 描述您的功能将解决的问题
  2. 解释您提议的解决方案
  3. 考虑替代方案
  4. 如有必要,提供额外背景信息

来源:.github/ISSUE_TEMPLATE/bug_report.yml .github/ISSUE_TEMPLATE/feature_request.yml

开发工作流

来源:docs/ROADMAP.md35-42

项目范围

在考虑贡献时,请牢记项目定义的范围。

范围内

  • core:专注于让 LLM 通过代码执行安全地控制计算机。
  • terminal_interface:供用户指挥代码运行 LLM 的纯文本界面。

范围外

  • core 中除运行代码之外的其他功能。
  • 除文本之外,与 LLM 进行更复杂的交互(文件路径指向图像/视频除外)。

来源:docs/ROADMAP.md52-64

测试框架

Open Interpreter 正在致力于构建一个强大的测试框架,以确保可靠性和性能。项目旨在:

  1. 开发可独立于 GitHub Actions 运行的全面测试。
  2. 测试 GAIA 基准以评估能力。
  3. 测试多种语言模型以确保广泛的兼容性。
  4. 针对不同 LLM 优化提示。

测试工作侧重于跨不同模型和配置的功能和性能。

来源:docs/ROADMAP.md35-42

遥测

Open Interpreter 包含一个匿名遥测系统,用于帮助理解使用模式并改进产品。

数据收集

遥测系统收集:

  • Open Interpreter 版本和环境。
  • interpreter.chat 的运行方式和模式。
  • 发生的异常(不含回溯)。

收集个人身份信息,例如用户名、主机名、文件名或环境变量。

选择退出

您可以通过以下几种方式禁用遥测:

方法示例
Python APIinterpreter.disable_telemetry = True
CLIinterpreter --disable_telemetry
配置文件在配置文件 YAML 中设置 disable_telemetry: true
环境变量设置 DISABLE_TELEMETRY=true

实现

遥测系统使用 PostHog 进行数据存储和分析。每个用户都会被分配一个唯一的 ID,该 ID 存储在 ~/.cache/open-interpreter/telemetry_user_id 中。

来源:interpreter/core/utils/telemetry.py docs/telemetry/telemetry.mdx

贡献对话

Open Interpreter 正在训练一个开源语言模型,并允许用户贡献他们的对话以供训练使用。

工作原理

  1. 用户可以选择分享过去的和/或未来的对话。
  2. 共享的对话将被发送到 Open Interpreter API 进行模型训练。
  3. 一个缓存会跟踪用户关于贡献的偏好。

用户流程

来源:interpreter/terminal_interface/contributing_conversations.py

实现

对话贡献通过以下方式处理:

  • 用户同意分享过去和未来对话的提示。
  • 用于跟踪用户偏好的贡献缓存。
  • 用于接收贡献对话的 API 端点。

来源:interpreter/terminal_interface/contributing_conversations.py169-193

未来规划与代码质量

项目正在朝着以下方向努力:

  1. 无状态核心包:将配置移出核心包。
  2. 组件分离:进一步将 TUI 与核心分离。
  3. 更好的配置存储:改进模型密钥和配置的存储。
  4. 版本化系统消息:管理和更新系统消息。

这些工作旨在使代码库更易于维护和贡献。

来源:docs/ROADMAP.md33-50

如何开始

要开始为 Open Interpreter 做出贡献:

  1. Fork 并克隆仓库
  2. 设置您的开发环境。
  3. 探索代码库以了解其结构。
  4. 从 GitHub 问题跟踪器中选择一个问题,或者实现路线图中的一个功能。
  5. 遵循开发工作流程提交您的更改。

在提交拉取请求之前,请确保您的代码符合项目的架构和范围。

来源:docs/ROADMAP.md

社区与支持

通过以下方式加入 Open Interpreter 贡献者社区:

  • 在 GitHub 上参与问题讨论。
  • 协助处理 Bug。
  • 改进文档。
  • 实现路线图中的功能。
  • 与其他贡献者分享知识。

您的贡献有助于使 Open Interpreter 更强大,并为全球用户所用。