Skip to main content

使用 GitHub Models 在您的企业中开发由 AI 驱动的应用程序

简化企业中的 AI 开发。

谁可以使用此功能?

Organization owners and enterprise owners

注意

适用于组织和存储库的 GitHub Models 为 公开预览,可能会变动。

GitHub Models 允许开发人员大规模构建 AI 驱动的应用程序,同时企业保持控制、合规性和成本效益。

为什么 GitHub Models?

  • 集中式模型管理:控制组织中的开发人员可以使用哪些 AI 模型和提供程序****。
  • 快速 AI 开发:快速原型制作、评估以及优化提示和模型****。
  • API 访问: 使用 GitHub Models REST API 实现自动化并集成到企业工作流中。
  • 自定义模型集成: 自带 LLM API 密钥来连接外部或自定义模型,使组织能够更灵活地控制可用的 GitHub Models模型,同时与现有的付款方式、信用额度和提供商保持一致。
  • 治理和合规性控制:强制实施组织的标准和监视模型使用情况****。
  • 成本优化:避免高价模型带来的意外成本****。
  • 协作: 使用标准 GitHub 开发实践共享提示和结果。
  • 以安全为中心的体系结构: 请放心,你的数据保留在GitHubAzure内,并且不会与模型提供程序共享。
  • 可视化界面:允许非技术团队成员与开发人员一起贡献内容****。
  • 版本控制: 所有提示和模型更改都会经历标准 GitHub 提交和拉取请求流,以便了解何时和为何更改提示。

请参阅 关于GitHub模型

大规模使用 GitHub Models 的最佳实践

以下最佳做法可帮助你有效地在整个组织中使用 GitHub Models 。

比较和评估用于治理和合规性的 AI 模型

根据公司的治理、数据安全性和合规性要求,查看和比较可用的 AI 模型。 您可以在任何已启用 Models 的 GitHub 仓库中执行此操作,也可以通过位于 https://github.com/marketplace?type=models 的 GitHub Models 中的 GitHub Marketplace 目录执行此操作。 注意事项可能包括:

  • 治理和安全性:检查每个模型是否符合 GDPR、SOC 2 和 ISO 27001 等标准和法规,并确保数据不会保留在组织外部,除非得到明确同意****。
  • 模型性能:对内部数据集运行基准评估,以评估推理、上下文保留和幻觉率****。
  • API 控制和可见性:需要在团队或组织级别对使用配额、提示检查和速率限制进行精细控制****。
  • 成本优化:包括令牌定价、推理速度以及模型变体是否可用于分层用途****。 例如,与用于体系结构讨论的高级模型相比,可以使用更便宜的模型来测试用例生成。

确定要使用的模型后,可以将组织中的访问权限限制为仅允许使用这些模型,请参阅 管理团队的模型使用情况

跨团队优化和共享提示

开发人员可以使用提示编辑器 GitHub Models 来创建和优化提示。 团队可以在可与 GitHub 开发工作流集成的稳定的非生产环境中试验不同的提示词变体和模型。 可视化界面允许非技术利益干系人与开发人员一起贡献内容。 请参阅 使用提示编辑器

轻型评估工具使你的团队能够比较常见指标(例如延迟、相关性和基础性)的结果,或者,你可以创建自定义评估程序。 比较特定生成式 AI 用例的提示和模型性能,例如创建代码、测试、文档或代码评审建议。

当你的团队编写出有效的提示词后,可以将其保存为 YAML 文件,并通过 GitHub 拉取请求分享出来供审查。 提交的提示可供其他团队和工作流访问,并且可与公司的标准保持一致。 这种集中且协作的方法可促使管理加速开发,有助于在整个组织中强制实施最佳做法。

评估和优化模型使用成本

随着 AI 支持的应用程序的采用不断增强,AI 模型得到改进,用于 GitHub Models 评估不同模型和模型更新的成本和性能。 为您的组织选择最具性价比的方案,并在用量随多个团队扩展时管理成本。

使用 GitHub Models REST API 或扩展进行编程管理

若要更有效地跨所有团队管理资源,可以利用 GitHub Models REST API 来:

  • 管理并更新组织设置: 以编程方式更新模型access多个团队的权限和治理设置,以确保一致性和符合性。
  • 列出和检索提示:列出、检索和审核不同团队使用的提示,以监视使用情况、共享成功提示和维护最佳做法的中心存储库****。
  • 运行模型推理请求:针对特定模型和参数(例如频率惩罚、最大令牌数、响应格式和出现惩罚)运行推理请求****。

还可以使用这些扩展来运行推理请求和管理提示:

  • GitHub Models 用于 GitHub CLI 的扩展
  • 用于 GitHub Models 的 GitHub Copilot 聊天功能 扩展
  • GitHub Models VS Code 扩展

监视、迭代和集成

借助内置治理功能,可以监视模型使用情况,并确保持续符合公司策略。 审核日志提供已访问或修改模型和提示的人员的相关信息。 存储库 GitHub Models 集成允许所有利益干系人协作并持续迭代 AI 驱动的应用程序。

示例:使用 GitHub Models 配合 GitHub Actions 汇总问题

大型软件开发项目通常包含充满技术细节的议题。 您可以使用 GitHub Models 和 GitHub Actions 部署 AI 驱动的问题摘要。

前提: 在组织中启用 GitHub Models ,并设置要提供给单个存储库的模型和发布者。

  1. 在存储库中创建提示

    在存储库的“Models”选项卡中,使用提示编辑器创建提示。

    示例系统提示:

    你是 GitHub 议题的摘要生成器。 强调关键技术要点或重要问题。

    示例用户提示:

    总结此问题 - {{input}}

  2. 运行并迭代完善你的提示

    运行您的命令提示符。 在“Variables”窗格中提供一些示例议题内容作为 {{input}} 的值。

    尝试不同的模型(例如 OpenAI GPT-4o)并比较结果。 调整最大代币数和温度等参数。 反复执行,直至对结果感到满意。

  3. (可选)运行更广泛的测试

    使用“比较”视图可以同时针对不同模型运行多个提示,并在网格视图中查看结果的比较情况。 还可以进行定义并使用评估程序来确保结果包含某些关键字或满足其他标准。

  4. 提交提示

    为提示命名并提交更改以完成拉取请求流。 例如,如果将提示命名为 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
    

    查看和合并拉取请求后,提示将可供任何人在存储库中使用。

  5. 在工作流中调用提示

    有关创建工作流的信息,请参阅“撰写工作流程”。

    需要设置 models: read 权限以允许在工作流中调用提示。

    下面是一个示例工作流,该工作流将 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@v6
    
          - 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 }}
    
  6. 监视和迭代

    您可以使用 GitHub Models 提示编辑器监控该操作的性能,并迭代优化提示和模型选择。 还可以使用 CLI 扩展 在本地测试,或使用 以编程方式更新提示和模型设置。

    还可以考虑将模型响应保存为存储库中的文件,以便查看并循环访问模型随时间推移的性能。 这样便可以不断提高摘要的质量,并确保它们满足团队的需求。