注意
GitHub 模型面向组织和代码库的功能正处于公开预览阶段,可能会有更改。
GitHub 模型让开发者能够大规模构建 AI 驱动的应用程序,同时企业保持控制、合规性和成本效益。
为什么使用 GitHub 模型?
- 集中式模型管理: 控制组织内开发者可以使用的 AI 模型和供应商。
- 快速 AI 开发: 快速原型、评估并优化提示词和模型。
- API 访问: 使用 GitHub 模型 REST API 实现自动化并与企业工作流集成。
- 自定义模型集成: 携带您自己的大型语言模型(LLM)API 密钥,以连接外部或自定义模型,为组织在 GitHub 模型中提供更大的灵活性和控制权,同时保持与现有的付款方式、积分和供应商一致。
- 治理和合规控制: 强制执行组织标准并监控模型使用情况。
- 成本优化: 避免因高价模型产生的意外费用。
- 协作: 使用标准 GitHub 开发实践共享提示词和结果。
- 安全为中心的架构: 确保您的数据始终保留在 GitHub 和 Azure 中,不会与模型供应商共享。
- 可视化界面: 允许非技术团队成员与开发者一起贡献。
- 版本控制: 所有提示词和模型的更改都通过标准的 GitHub 提交和拉取请求流程,便于你了解何时以及为何更改提示词。
了解 GitHub 模型。
大规模使用 GitHub 模型的最佳实践
以下最佳实践可帮助您在整个组织中有效使用 GitHub 模型。
比较和评估 AI 模型的治理与合规性
审查并比较可用的 AI 模型是否符合贵公司的治理、数据安全和合规要求。您可以在任何启用了模型的 GitHub 仓库中,或在 GitHub Marketplace 的 GitHub 模型目录(https://github.com/marketplace?type=models)中进行此操作。您可能需要考虑以下因素:
- 治理与安全: 检查每个模型是否符合 GDPR、SOC 2、ISO 27001 等标准和法规,并确保数据不会在未取得明确同意的情况下持久化到组织外部。
- 模型性能: 在内部数据集上进行基准评估,以评估推理能力、上下文保持以及幻觉率。
- API 控制与可视性: 需要在团队或组织层面对使用配额、提示检查和速率限制进行细粒度控制。
- 成本优化: 考虑代币定价、推理速度以及模型变体的可用性,以实现分层使用。例如,您可以使用成本更低的模型生成测试用例,而在架构讨论时使用更高级的模型。
一旦确定要使用的模型,您可以在组织内仅限这些模型的访问,见 管理您团队的模型使用。
在团队之间优化并共享提示词
开发者可以使用 GitHub 模型中的提示编辑器创建和完善提示词。团队可以在一个稳定的、非生产环境中尝试不同的提示词变体和模型,该环境与 GitHub 开发工作流集成。可视化界面使非技术利益相关者也能与开发者一起贡献。参见 使用提示编辑器。
轻量级评估工具允许您的团队在常见指标(如延迟、相关性和依据性)上比较结果,或创建自定义评估器。针对您特定的生成式 AI 用例(如编写代码、测试、文档或代码审查建议)比较提示词和模型的性能。
当团队创建有效的提示词后,可以将其保存为 YAML 文件,并通过 GitHub 拉取请求进行审查和共享。已提交的提示词可供其他团队和工作流使用,并可保持与公司标准的一致性。这种集中式、协作式的提示词管理方式加速了开发,并帮助您在整个组织中推行最佳实践。
评估并优化模型使用成本
随着 AI 驱动的应用程序的采用率提升以及 AI 模型的改进,使用 GitHub 模型评估不同模型及其更新的成本和性能。为组织需求选择最具成本效益的方案,并在使用量跨多个团队扩展时管理费用。
使用 GitHub 模型 REST API 或扩展进行编程化管理
为了更高效地管理所有团队的资源,您可以利用 GitHub 模型 REST API 来
- 管理和更新组织设置: 通过编程方式一次性更新多个团队的模型访问权限和治理设置,以确保一致性和合规性。
- 列出并检索提示词: 列出、检索并审计不同团队使用的提示词,以监控使用情况、共享成功的提示词,并维护最佳实践的中心仓库。
- 执行模型推理请求: 对特定模型进行推理请求,并可设置频率惩罚、最大代币数、响应格式、出现惩罚等参数。
您也可以使用这些扩展来运行推理请求并管理提示词
- GitHub 模型的 GitHub CLI 扩展
- GitHub 模型的 GitHub Copilot Chat 扩展
- GitHub 模型的 VS Code 扩展
监控、迭代和集成
借助内置的治理功能,您可以监控模型使用情况并确保持续符合公司政策。审计日志提供对谁访问或修改模型和提示词的可见性。GitHub 模型的仓库集成让所有利益相关者能够协作并持续迭代 AI 驱动的应用程序。
示例:使用 GitHub 模型和 GitHub Actions 对 issue 进行摘要
大型软件开发项目的 issue 通常包含大量技术细节。您可以使用 GitHub 模型和 GitHub Actions 推出 AI 驱动的 issue 摘要。
前置条件: 在组织中启用 GitHub 模型,并设置您希望在各个仓库中提供的模型和发布者。
-
在仓库中创建提示词
在仓库的 “Models” 选项卡中,使用提示编辑器创建提示词。
示例系统提示词
您是 GitHub issue 的摘要者。突出关键技术点或重要问题。
示例用户提示词
总结此 issue - {{input}}
-
运行并迭代您的提示词
运行您的提示词。在 “Variables” 面板中提供一些示例 issue 内容作为
{{input}}的值。尝试不同的模型(例如 OpenAI GPT-4o)并比较结果。调整 max tokens、temperature 等参数。迭代直至满意为止。
-
可选地,进行更广泛的测试
“Compare” 视图允许您同时对多个模型运行相同的提示词,并在网格视图中查看结果对比。您还可以定义并使用评估器,以确保结果包含特定关键字或符合其他标准。
-
提交您的提示词
为您的提示词命名并提交更改,以通过拉取请求流程。例如,如果将提示词命名为
summarize,则在仓库根目录下会生成一个summarize.prompt.yaml文件,内容类似如下messages: - role: system content: >- You are a summarizer of GitHub issues. Emphasize key technical points or important questions. - role: user content: 'Summarize this issue, please - {{input}}' model: openai/gpt-4o modelParameters: max_tokens: 4096当您的拉取请求经审查并合并后,提示词即对仓库中的所有人可用。
-
在工作流中调用您的提示词
有关创建工作流的信息,请参见 编写工作流。
您需要设置
models: read权限,才能在工作流中调用提示词。以下是一个示例工作流,它会在新创建的 issue 上添加 AI 生成的摘要作为评论
YAML name: Summarize New Issue on: issues: types: [opened] permissions: issues: write contents: read models: read jobs: summarize_issue: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install gh-models extension run: gh extension install https://github.com/github/gh-models env: GH_TOKEN: ${{ github.token }} - name: Create issue body file run: | cat > issue_body.txt << 'EOT' ${{ github.event.issue.body }} EOT - name: Summarize new issue run: | cat issue_body.txt | gh models run --file summarize.prompt.yml > summary.txt env: GH_TOKEN: ${{ github.token }} - name: Update issue with summary run: | SUMMARY=$(cat summary.txt) gh issue comment ${{ github.event.issue.number }} --body "### Issue Summary ${SUMMARY}" env: GH_TOKEN: ${{ github.token }}name: Summarize New Issue on: issues: types: [opened] permissions: issues: write contents: read models: read jobs: summarize_issue: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install gh-models extension run: gh extension install https://github.com/github/gh-models env: GH_TOKEN: ${{ github.token }} - name: Create issue body file run: | cat > issue_body.txt << 'EOT' ${{ github.event.issue.body }} EOT - name: Summarize new issue run: | cat issue_body.txt | gh models run --file summarize.prompt.yml > summary.txt env: GH_TOKEN: ${{ github.token }} - name: Update issue with summary run: | SUMMARY=$(cat summary.txt) gh issue comment ${{ github.event.issue.number }} --body "### Issue Summary ${SUMMARY}" env: GH_TOKEN: ${{ github.token }} -
监控并迭代
您可以使用 GitHub 模型的提示编辑器监控 Action 的性能并对提示词和模型选择进行迭代。也可以使用 CLI 扩展 在本地进行测试,或使用 GitHub 模型 REST API 编程化更新提示词和模型设置。
您还可以考虑将模型响应保存为仓库中的文件,以便随时审查并迭代模型的性能。这使您能够持续提升摘要质量,确保满足团队需求。