Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Cấu trúc đối tượng Skill Sync

Tổng quan

Đối tượng skillSync cho phép quản trị viên đồng bộ hóa các Skill từ các nguồn bên ngoài. Trong phiên bản v1.3.13, GitHub là nhà cung cấp được hỗ trợ.

GitHub Skill Sync đọc các tệp SKILL.md và các tệp đi kèm từ các đường dẫn kho lưu trữ đã cấu hình, lưu trữ chúng dưới dạng các Skill với source: "github", và giữ cho các hàng được sao chép đồng bộ với kho lưu trữ gốc trong các lần đồng bộ hóa sau đó.

Ví dụ

skillSync:
  github:
    enabled: true
    intervalMinutes: 60
    runOnStartup: true
    sources:
      - id: librechat-skills
        owner: your-org
        repo: your-skills-repo
        ref: main
        paths:
          - skills
        skillDiscoveryDepth: 2
        token: '${GITHUB_SKILLS_TOKEN}'
        # credentialKey: production-skills
        # tenantId: your-tenant-id

Thông tin xác thực

Sử dụng token hoặc credentialKey cho mỗi nguồn, không sử dụng cả hai. token phải là một tham chiếu biến môi trường như ${GITHUB_SKILLS_TOKEN}. Sử dụng GitHub fine-grained personal access token được giới hạn trong kho lưu trữ đã chọn với quyền Contents và Metadata ở chế độ chỉ đọc (read-only).

Các trường cấp cao nhất

skillSync.github

KeyTypeDescriptionExample
github.enabledBooleanBật hoặc tắt GitHub Skill Sync.enabled: true
github.intervalMinutesNumberTần suất chạy đồng bộ GitHub Skill theo lịch trình. Phải nằm trong khoảng từ 5 đến 35791 phút.intervalMinutes: 60
github.runOnStartupBooleanChạy GitHub Skill Sync khi máy chủ khởi động.runOnStartup: true
github.sourcesArray of ObjectsCác kho lưu trữ GitHub và đường dẫn cần quét cho Skills. Bắt buộc khi GitHub Skill Sync được bật.

Mặc định:

  • enabled: false
  • intervalMinutes: 60
  • runOnStartup: false
  • sources: []

Các trường nguồn

Mỗi mục github.sources cấu hình một nguồn kho lưu trữ.

KeyTypeDescriptionExample
idStringID nguồn duy nhất ổn định. Phải bắt đầu bằng một chữ cái hoặc chữ số và chỉ được chứa các chữ cái, chữ số, dấu gạch dưới hoặc dấu gạch ngang.id: librechat-skills
ownerStringTên người dùng hoặc tổ chức GitHub.owner: your-org
repoStringTên kho lưu trữ GitHub.repo: your-skills-repo
refStringGit ref, branch, tag, hoặc commit để đọc. Mặc định là `main`.ref: main
pathsArray of StringsCác đường dẫn kho lưu trữ cần quét. Sử dụng `.` để quét từ thư mục gốc của kho lưu trữ.paths: ["skills"]
skillDiscoveryDepthNumberĐộ sâu thư mục bên dưới mỗi đường dẫn được cấu hình để quét tệp `SKILL.md`. Mặc định là `2`; tối đa là `10`.skillDiscoveryDepth: 2
tokenStringTham chiếu biến môi trường chứa mã thông báo GitHub. Loại trừ lẫn nhau với `credentialKey`.token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyStringKhóa thông tin xác thực GitHub được lưu trữ, quản lý thông qua các endpoint thông tin xác thực Skill Sync của quản trị viên. Loại trừ lẫn nhau với `token`.credentialKey: production-skills
tenantIdStringID đối tượng thuê tùy chọn sở hữu các Skill được phản chiếu khi tính năng cô lập đối tượng thuê được bật.tenantId: tenant-a

Source Identity

Trường id là một phần của định danh mirror. Hãy giữ nó ổn định. Việc trỏ lại một nguồn đến một kho lưu trữ đã đổi tên hoặc một ref mới sẽ giữ cho các Skill được mirror liên kết với cùng một source id, trong khi việc thay đổi source id sẽ tạo ra một mirror mới.

Khi tenantId được thiết lập, các thao tác đọc và ghi đồng bộ sẽ chạy bên trong ngữ cảnh cô lập của tenant đó. Hãy coi tenantId là bất biến đối với một source id: việc thay đổi, thêm hoặc xóa nó sau này sẽ để lại các Skill đã được phản chiếu trước đó trong tenant cũ.

Hành vi đồng bộ hóa

Đồng bộ kỹ năng GitHub:

  • Khám phá các tệp SKILL.md bên dưới mỗi đường dẫn đã được cấu hình.
  • Nhập nội dung, frontmatter và các tệp đi kèm của SKILL.md.
  • Lưu trữ siêu dữ liệu nguồn như source id, owner, repo, ref, skill path, commit SHA và blob SHA.
  • Cập nhật các Skills được phản chiếu khi tệp nguồn thay đổi.
  • Xóa các Skills và tệp được nhân bản đã bị loại bỏ khỏi nguồn được cấu hình.
  • Sử dụng một sync lock để đảm bảo chỉ có một tiến trình đồng bộ GitHub chạy tại một thời điểm.

Các endpoint quản trị

API quản trị cung cấp trạng thái GitHub Skill Sync, các lần chạy thủ công và quản lý thông tin xác thực đã lưu:

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpointTrả về trạng thái kích hoạt, cài đặt lịch trình, trạng thái nguồn, sự hiện diện của thông tin xác thực và số lượng đồng bộ hóa gần đây.
POST /api/admin/skills/sync/runEndpointBắt đầu một lần chạy đồng bộ thủ công khi người gọi có khả năng Skills quản trị cần thiết.
PUT /api/admin/skills/sync/credentials/:credentialKeyEndpointLưu trữ hoặc xoay vòng token GitHub cho một khóa xác thực.
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpointXóa token GitHub đã lưu cho một khóa thông tin xác thực.

Việc đọc trạng thái yêu cầu quyền truy cập quản trị viên và quyền đọc Skills. Việc chạy thủ công và ghi thông tin xác thực yêu cầu quyền quản lý Skills cấp nền tảng.

Hướng dẫn này thế nào?