GitHub Actions¶
ใช้ GitHub Actions เมื่อคุณต้องการให้ที่เก็บแปลเอกสารที่มีการเปลี่ยนแปลงโดยอัตโนมัติและเปิด pull request พร้อมผลลัพธ์ที่สร้างขึ้น
โดยปกติที่เก็บส่วนใหญ่ควรใช้การตั้งค่า GITHUB_TOKEN มาตรฐาน ใช้การตั้งค่า GitHub App เฉพาะเมื่อองค์กรของคุณจำกัดสิทธิ์ของโทเค็นเริ่มต้นหรือจำเป็นต้องใช้การยืนยันตัวตนแบบแอป
Prerequisites¶
ก่อนสร้าง workflow ให้กำหนดค่า secrets ของบริการ AI ที่การรันการแปลของคุณต้องการ
การแปลข้อความต้องการผู้ให้บริการโมเดลภาษาอย่างน้อยหนึ่งราย:
- Azure OpenAI:
AZURE_OPENAI_API_KEY,AZURE_OPENAI_ENDPOINT,AZURE_OPENAI_MODEL_NAME,AZURE_OPENAI_CHAT_DEPLOYMENT_NAME,AZURE_OPENAI_API_VERSION - OpenAI:
OPENAI_API_KEY,OPENAI_CHAT_MODEL_ID, plus optionalOPENAI_ORG_IDandOPENAI_BASE_URL
การแปลภาพยังต้องการ Azure AI Vision เพิ่มเติม:
AZURE_AI_SERVICE_API_KEYAZURE_AI_SERVICE_ENDPOINT
ดู การกำหนดค่า และ การตั้งค่า Azure AI สำหรับรายละเอียดการกำหนดค่าแบบโลคัล
Standard Setup¶
ใช้การตั้งค่านี้สำหรับที่เก็บสาธารณะและส่วนตัวส่วนใหญ่
Step 1: Add Repository Secrets¶
ในที่เก็บเป้าหมายของคุณ ให้เปิด Settings > Secrets and variables > Actions แล้วเพิ่ม secrets ของผู้ให้บริการที่ workflow ของคุณจะใช้

Step 2: Enable Workflow Permissions¶
เปิด Settings > Actions > General
ภายใต้ Workflow permissions:
- เลือก Read and write permissions
- เปิดใช้งาน Allow GitHub Actions to create and approve pull requests
- บันทึกการตั้งค่า

Step 3: Add the Workflow¶
สร้าง .github/workflows/co-op-translator.yml:
name: Co-op Translator
on:
push:
branches:
- main
jobs:
co-op-translator:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install Co-op Translator
run: |
python -m pip install --upgrade pip
pip install co-op-translator
- name: Run Co-op Translator
env:
PYTHONIOENCODING: utf-8
AZURE_AI_SERVICE_API_KEY: ${{ secrets.AZURE_AI_SERVICE_API_KEY }}
AZURE_AI_SERVICE_ENDPOINT: ${{ secrets.AZURE_AI_SERVICE_ENDPOINT }}
AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
AZURE_OPENAI_MODEL_NAME: ${{ secrets.AZURE_OPENAI_MODEL_NAME }}
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_CHAT_DEPLOYMENT_NAME }}
AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_ORG_ID: ${{ secrets.OPENAI_ORG_ID }}
OPENAI_CHAT_MODEL_ID: ${{ secrets.OPENAI_CHAT_MODEL_ID }}
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
run: |
translate -l "es fr de" -y
- name: Create Pull Request with translations
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "Update translations via Co-op Translator"
title: "Update translations via Co-op Translator"
body: |
This PR updates translations for recent changes to the main branch.
Generated by Co-op Translator.
branch: update-translations
base: main
labels: translation, automated-pr
delete-branch: true
add-paths: |
translations/
translated_images/
เปลี่ยน translate -l "es fr de" -y เป็นภาษาปลายทางและธงเนื้อหาที่โครงการของคุณต้องการ สำหรับที่เก็บขนาดใหญ่ ให้เพิ่มตัวกรอง paths: ภายใต้ on: เพื่อให้ workflow ทำงานเฉพาะเมื่อเอกสารมีการเปลี่ยนแปลง
GitHub App Setup¶
ใช้การตั้งค่านี้เมื่อ GITHUB_TOKEN ไม่สามารถสร้าง commits หรือ pull requests ในองค์กรของคุณได้
Step 1: Create or Install a GitHub App¶
สร้าง GitHub App ที่มีสิทธิ์อ่าน/เขียนสำหรับ Contents และ Pull requests หรือ ติดตั้งแอปที่องค์กรจัดเตรียมไว้หากองค์กรของคุณมีแอปอยู่แล้ว
บันทึก:
- App ID
- Private key contents
จัดเก็บเป็น secrets ของที่เก็บ:
GH_APP_IDGH_APP_PRIVATE_KEY
Step 2: Generate an App Token¶
ใช้ workflow เดียวกันกับการตั้งค่ามาตรฐาน แต่เพิ่มขั้นตอน app-token ก่อนขั้นตอน pull request:
- name: Authenticate GitHub App
id: generate_token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.GH_APP_ID }}
private_key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Create Pull Request with translations
uses: peter-evans/create-pull-request@v5
with:
token: ${{ steps.generate_token.outputs.token }}
commit-message: "Update translations via Co-op Translator"
title: "Update translations via Co-op Translator"
branch: update-translations
base: main
delete-branch: true
add-paths: |
translations/
translated_images/
Runner Limits¶
GitHub-hosted runners มีระยะเวลาการทำงานสูงสุด ที่เก็บขนาดใหญ่หรือหลายภาษาปลายทางอาจเกินขีดจำกัดนั้นได้
สำหรับงานแปลที่มีปริมาณมาก:
- แปลภาษาน้อยลงต่อการรันหนึ่งครั้ง
- ใช้ธงเนื้อหา เช่น
-md,-nb, หรือ-img - ใช้ runner ที่โฮสต์เองเมื่อขนาดที่เก็บหรือความหน่วงของโมเดลทำให้ runner ที่โฮสต์ไม่เชื่อถือได้
Review in CI¶
ใช้ co-op-review เมื่อ pull request ควรตรวจสอบการแปลที่สร้างขึ้นโดยไม่เรียกผู้ให้บริการ LLM หรือ Vision
- name: Review translated outputs
run: |
co-op-review --changed-from "origin/${{ github.base_ref }}" --format github
co-op-review เป็นคำสั่งการตรวจทานเชิงกำหนด (beta) การตรวจสอบและสคีมาผลลัพธ์ของมันอาจพัฒนาได้ แต่ถูกออกแบบให้ปลอดภัยสำหรับ CI เพราะมันไม่เขียนไฟล์หรือเรียกผู้ให้บริการโมเดล