GitHub Actions¶
ਜਦੋਂ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਕੋਈ ਰਿਪੋਜ਼ਟਰੀ ਬਦਲੇ ਹੋਏ ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ ਨੂੰ ਆਟੋਮੈਟਿਕ ਤੌਰ 'ਤੇ ਅਨੁਵਾਦ ਕਰਕੇ ਉਸ ਦੀਆਂ ਤਿਆਰ ਕੀਤੀਆਂ ਆਉਟਪੁੱਟਾਂ ਨਾਲ ਇੱਕ ਪੂਲ ਰਿਕਵੈਸਟ ਖੋਲ੍ਹੇ ਤਾਂ GitHub Actions ਵਰਤੋ।
ਬਹੁਤ ਸਾਰੇ ਰਿਪੋਜ਼ਟਰੀਆਂ ਲਈ ਸਧਾਰਣ GITHUB_TOKEN ਸੈਟਅਪ ਵਰਤੋਂ। ਜਦੋਂ ਤੁਹਾਡੀ ਆਰਗੇਨਾਈਜੇਸ਼ਨ ਡਿਫੌਲਟ ਟੋਕਨ ਦੀਆਂ ਪਰਮੀਸ਼ਨ ਨੂੰ ਸੀਮਿਤ ਕਰਦੀ ਹੈ ਜਾਂ ਐਪ-ਅਧਾਰਿਤ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਤਾਂ ਕੇਵਲ GitHub App ਸੈਟਅਪ ਵਰਤੋਂ।
Prerequisites¶
ਵਰਕਫਲੋ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ, ਉਸ ਏਆਈ ਸਰਵਿਸ ਸੀਕਰੇਟਸ ਨੂੰ ਕੰਫਿਗਰ ਕਰੋ ਜੋ ਤੁਹਾਡੇ ਅਨੁਵਾਦ ਦੇ ਚਲਾਉਣ ਲਈ ਲੋੜੀਂਦੇ ਹਨ।
ਟੈਕਸਟ ਅਨੁਵਾਦ ਲਈ ਇੱਕ ਭਾਸ਼ਾ ਮਾਡਲ ਪ੍ਰੋਵਾਈਡਰ ਦੀ ਲੋੜ ਹੈ:
- 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, ਨਾਲ ਵਿਸ਼ੇਸ਼ਕ ਤੌਰ 'ਤੇOPENAI_ORG_IDਅਤੇOPENAI_BASE_URL
ਇਮੇਜ ਅਨੁਵਾਦ ਲਈ ਇਲਾਵਾ Azure AI Vision ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ:
AZURE_AI_SERVICE_API_KEYAZURE_AI_SERVICE_ENDPOINT
ਸਥਾਨਕ ਕੰਫਿਗਰੇਸ਼ਨ ਵੇਰਵਿਆਂ ਲਈ ਦੇਖੋ Configuration ਅਤੇ Azure AI Setup।
Standard Setup¶
ਅਧਿਕਤਰ ਪਬਲਿਕ ਅਤੇ ਪ੍ਰਾਈਵੇਟ ਰਿਪੋਜ਼ਟਰੀਆਂ ਲਈ ਇਹ ਸੈਟਅਪ ਵਰਤੋਂ।
Step 1: Add Repository Secrets¶
ਆਪਣੇ ਲਕੜੀ ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਖੋਲ੍ਹੋ Settings > Secrets and variables > Actions, ਫਿਰ ਆਪਣੇ ਵਰਕਫਲੋ ਵੱਲੋਂ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਪ੍ਰੋਵਾਈਡਰ ਸੀਕਰੇਟਸ ਜੋੜੋ।

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 ਨੂੰ ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਲਈ ਲੱਕੜੀ ਭਾਸ਼ਾਵਾਂ ਅਤੇ ਸਮੱਗਰੀ ਫਲੈਗਸ ਵਿੱਚ ਬਦਲੋ। ਵੱਡੇ ਰਿਪੋਜ਼ਟਰੀਆਂ ਲਈ, ਵਰਕਫਲੋ ਨੂੰ ਸਿਰਫ਼ ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ ਬਦਲਣ 'ਤੇ ਚਲਾਉਣ ਲਈ on: ਹੇਠ ਇੱਕ paths: ਫਿਲਟਰ ਜੋੜੋ।
GitHub App Setup¶
ਜਦੋਂ GITHUB_TOKEN ਤੁਹਾਡੀ ਆਰਗੇਨਾਈਜੇਸ਼ਨ ਵਿੱਚ ਕਮਿੱਟ ਜਾਂ ਪੂਲ ਰਿਕਵੈਸਟ ਬਣਾਉਣ ਵਿੱਚ ਅਸਮਰੱਥ ਹੋਵੇ ਤਾਂ ਇਹ ਸੈਟਅਪ ਵਰਤੋਂ।
Step 1: Create or Install a GitHub App¶
ਇੱਕ GitHub App ਬਣਾਓ ਜਿਸ ਨੂੰ Contents ਅਤੇ Pull requests ਲਈ read/write ਐਕਸੈਸ ਹੋਵੇ, ਜਾਂ ਜੇ ਤੁਹਾਡੀ ਆਰਗੇਨਾਈਜੇਸ਼ਨ ਪਹਿਲਾਂ ਹੀ ਕੋਈ ਐਪ ਰੱਖਦੀ ਹੈ ਤਾਂ ਉਸ ਐਪ ਨੂੰ ਇੰਸਟਾਲ ਕਰੋ।
ਰਿਕਾਰਡ ਕਰੋ:
- App ID
- Private key contents
ਉਹਨਾਂ ਨੂੰ ਰਿਪੋਜ਼ਟਰੀ ਸੀਕਰੇਟਸ ਵਜੋਂ ਸਟੋਰ ਕਰੋ:
GH_APP_IDGH_APP_PRIVATE_KEY
Step 2: Generate an App Token¶
ਸਧਾਰਣ ਸੈਟਅਪ ਵਾਲੇ ਵਰਕਫਲੋ ਨੂੰ ਹੀ ਵਰਤੋਂ, ਪਰ ਪੂਲ ਰਿਕਵੈਸਟ ਦੇ ਕਦਮ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਐਪ-ਟੋਕਨ ਕਦਮ ਸ਼ਾਮِل ਕਰੋ:
- 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-ਹੋਸਟਡ ਰਨਰਾਂ ਦੀ ਇੱਕ ਵੱਧੋ-ਵੱਧ ਨੌਕਰੀ ਮਿਆਦ ਹੁੰਦੀ ਹੈ। ਵੱਡੇ ਰਿਪੋਜ਼ਟਰੀ ਜਾਂ ਕਈ ਨਿਸ਼ਾਨੇ ਭਾਸ਼ਾਵਾਂ ਇਹ ਸੀਮਾ ਪਾਰ ਕਰ ਸਕਦੀਆਂ ਹਨ।
ਵੱਡੇ ਅਨੁਵਾਦ ਲੋਡ ਲਈ:
- ਪ੍ਰਤੀ ਚਲਾਣੇ ਘੱਟ ਭਾਸ਼ਾਵਾਂ ਅਨੁਵਾਦ ਕਰੋ।
-md,-nb, ਜਾਂ-imgਵਰਗੇ ਸਮੱਗਰੀ ਫਲੈਗਸ ਦੀ ਵਰਤੋਂ ਕਰੋ।- ਜਦੋਂ ਰਿਪੋਜ਼ਟਰੀ ਆਕਾਰ ਜਾਂ ਮਾਡਲ ਦੀ ਲੇਟੈਂਸੀ ਹੋਸਟਡ ਰਨਰਾਂ ਨੂੰ ਅਣਰਿਲਾਈਐਬਲ ਬਣਾਉਂਦੀ ਹੈ ਤਾਂ ਸੈਲਫ-ਹੋਸਟਡ ਰਨਰ ਵਰਤੋਂ।
Review in CI¶
ਜਦੋਂ ਕਿਸੇ ਪੂਲ ਰਿਕਵੈਸਟ ਨੂੰ ਜਨਰੇਟ ਕੀਤੇ ਅਨੁਵਾਦਾਂ ਨੂੰ ਵੈਲਿਡੇਟ ਕਰਨਾ ਹੋ ਪਰ LLM ਜਾਂ Vision ਪ੍ਰੋਵਾਈਡਰਾਂ ਨੂੰ ਕਾਲ ਨਾ ਕਰਨਾ ਹੋਵੇ ਤਾਂ co-op-review ਵਰਤੋਂ।
- name: Review translated outputs
run: |
co-op-review --changed-from "origin/${{ github.base_ref }}" --format github
co-op-review ਇੱਕ ਬੀਟਾ ਨਿਯਤਕ (deterministic) ਰਿਵਿਊ ਕਮਾਂਡ ਹੈ। ਇਸਦੀ ਚੈਕਸ ਅਤੇ ਆਉਟਪੁੱਟ ਸਕੀਮਾ ਵਿਕਸਿਤ ਹੋ ਸਕਦੇ ਹਨ, ਪਰ ਇਹ CI ਲਈ ਸੁਰੱਖਿਅਤ ਬਣਾਇਆ ਗਿਆ ਹੈ ਕਿਉਂਕਿ ਇਹ ਫਾਇਲਾਂ ਨਹੀਂ ਲਿਖਦਾ ਅਤੇ ਮਾਡਲ ਪ੍ਰੋਵਾਈਡਰਾਂ ਨੂੰ ਕਾਲ ਨਹੀਂ ਕਰਦਾ।