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

API Trình thông dịch mã

Thực thi mã một cách an toàn và quản lý tệp tin liền mạch với Code Interpreter API của LibreChat

Giới thiệu

Code Interpreter API của LibreChat cung cấp một cách an toàn và dễ dàng để thực thi mã và quản lý tệp thông qua giao diện API đơn giản. Cho dù bạn đang sử dụng nó thông qua các Agents của LibreChat hay tích hợp trực tiếp vào các ứng dụng của mình, API này cung cấp một môi trường sandbox mạnh mẽ để chạy mã bằng nhiều ngôn ngữ lập trình khác nhau.

Bản demo Code Interpreter

Mã nguồn mở

Code Interpreter của LibreChat được vận hành bởi ClickHouse/code-interpreter, một dịch vụ thực thi mã nguồn mở (Apache 2.0) trong môi trường sandbox. Bạn có thể tự host dịch vụ này và trỏ LibreChat đến instance của riêng mình.

Bắt đầu

  1. Triển khai dịch vụ code-interpreter (Docker Compose hoặc Helm, xem README của kho lưu trữ)
  2. Trỏ LibreChat đến đó bằng các biến môi trường LIBRECHAT_CODE_BASEURLLIBRECHAT_CODE_API_KEY
  3. Bắt đầu thực thi mã và tạo tệp một cách an toàn thông qua các Agent của LibreChat hoặc nút "Run Code"

Các tính năng chính

Các ngôn ngữ được hỗ trợ

Thực thi mã trong nhiều ngôn ngữ lập trình:

  • Python, Node.js (JS/TS), Go, C/C++, Java, PHP, Rust, Fortran, Rscript

Xử lý tệp tin liền mạch

  • Tải lên các tệp để xử lý
  • Tải xuống các đầu ra đã tạo
  • Quản lý tệp tin bảo mật
  • Tổ chức tệp dựa trên phiên làm việc

Bảo mật & Tiện lợi

  • Môi trường thực thi sandbox an toàn
  • Các chế độ cô lập mạnh (NsJail hoặc microVM thông qua libkrun)
  • Không yêu cầu thiết lập cục bộ cho người dùng cuối
  • Lưu trữ tệp tin biệt lập dựa trên phiên làm việc

Gọi công cụ theo chương trình (Programmatic Tool Calling)

Programmatic Tool Calling cho phép các Agent của LibreChat định tuyến các MCP tool đã chọn thông qua sandbox Code Interpreter. Thay vì yêu cầu model gọi trực tiếp từng tool, LibreChat cung cấp một công cụ điều phối được hỗ trợ bởi Code Interpreter; mã sandbox được tạo có thể gọi các tool stub đã đăng ký, sử dụng vòng lặp và câu lệnh điều kiện, xử lý các kết quả trung gian và trả về câu trả lời cuối cùng.

Sandbox vẫn không nhận được quyền truy cập mạng chung. Các lệnh gọi công cụ được điều phối thông qua Code Interpreter Tool Call Server và bản đồ công cụ đã đăng ký của LibreChat, vì vậy chỉ những công cụ khả dụng với tác nhân mới có thể được gọi.

Sử dụng API

Trong LibreChat

API có hỗ trợ hạng nhất trong LibreChat thông qua các phương thức chính sau:

  1. AI Agents: Kích hoạt Code Interpreter trong cấu hình agent của bạn để cho phép nó thực thi mã và xử lý tệp tin một cách tự động.

  2. Thực thi thủ công: Sử dụng nút "Run Code" trong các khối mã trong giao diện trò chuyện, như được hiển thị tại đây:

  3. Programmatic Tool Calling: Bật khả năng programmatic_tools và đánh dấu các MCP tool đã chọn là Programmatic để các agent có thể điều phối những công cụ đó từ mã nguồn trong môi trường sandbox.

Code Interpreter in LibreChat

Thiết lập API key

  • Thiết lập cho mỗi người dùng: nhập khóa API của bạn vào LibreChat khi được nhắc (sử dụng các phương pháp trên)
  • Thiết lập toàn cục: sử dụng biến môi trường LIBRECHAT_CODE_API_KEY trong tệp .env của dự án (cung cấp quyền truy cập cho tất cả người dùng)

Tích hợp API trực tiếp

Code Interpreter API có thể được tích hợp vào bất kỳ ứng dụng nào bằng cách sử dụng xác thực API key đơn giản:

  1. Triển khai instance code-interpreter của riêng bạn và tạo một API key
  2. Bao gồm API key trong các yêu cầu của bạn bằng cách sử dụng header x-api-key

URL cơ sở tự lưu trữ (Self-hosted base URL)

Thiết lập biến môi trường LIBRECHAT_CODE_BASEURL để trỏ LibreChat đến instance code-interpreter do bạn tự lưu trữ, cùng với một API key được tạo trên deployment đó, được sử dụng theo cách tương tự như trên.

Chức năng cốt lõi

Thực thi mã (Code Execution)

  • Chạy các đoạn mã trong các ngôn ngữ được hỗ trợ
  • Nhận đầu ra stdout/stderr
  • Lấy số liệu thống kê thực thi (mức sử dụng bộ nhớ, thời gian CPU)
  • Xử lý các đối số chương trình
  • Truy cập trạng thái thực thi và kết quả

Thao tác tệp

  • Tải lên các tệp đầu vào
  • Tải xuống các đầu ra đã tạo
  • Xem trước các artifact dạng Office, CSV, văn bản và PDF được tạo nội tuyến khi LibreChat có thể trích xuất/kết xuất chúng một cách an toàn
  • Liệt kê các tệp khả dụng
  • Xóa các tệp không cần thiết
  • Quản lý phiên tệp

Các bản xem trước của artifact được tạo ra bị giới hạn về kích thước một cách có chủ đích. Hãy đặt FILE_PREVIEW_MAX_EXTRACT_BYTES trong tệp .env của LibreChat để thay đổi giới hạn kích thước tệp nguồn cho việc trích xuất xem trước nội dòng; các tệp lớn hơn vẫn sẽ khả dụng để tải xuống.

Hạn chế

  • Mã không thể truy cập mạng
  • Chỉ có thể tạo tối đa 10 tệp mỗi lần chạy
  • Các giới hạn tài nguyên (RAM trên mỗi lần thực thi, kích thước tệp tải lên và hạn ngạch yêu cầu) phụ thuộc vào cách bạn cung cấp và cấu hình quá trình triển khai của mình.

Các trường hợp sử dụng

  • Kiểm thử mã nguồn: Kiểm thử các đoạn mã trong nhiều ngôn ngữ lập trình
  • File Processing: Chuyển đổi và phân tích tệp theo lập trình
  • Các ứng dụng AI: Thực thi mã do AI tạo ra một cách an toàn
  • Development Tools: Xây dựng các môi trường lập trình tương tác
  • Objective Logic: Xác minh logic và tính chính xác của mã nguồn, cải thiện các mô hình AI

Mã nguồn mở & Tự lưu trữ

Dịch vụ Code Interpreter là mã nguồn mở theo giấy phép Apache 2.0 tại ClickHouse/code-interpreter. Việc duy trì thực thi mã dưới dạng một dịch vụ riêng biệt giúp ứng dụng LibreChat cốt lõi luôn nhẹ nhàng: bạn chỉ triển khai cơ sở hạ tầng sandbox khi cần và có thể mở rộng nó độc lập với ứng dụng trò chuyện.

Dịch vụ này chạy dưới dạng một tập hợp các thành phần có khả năng mở rộng độc lập (một API gateway, các worker trong môi trường sandbox, và một máy chủ tệp) và hỗ trợ các chế độ cô lập mạnh mẽ (NsJail hoặc microVM thông qua libkrun) để bạn có thể chạy mã không đáng tin cậy một cách an toàn. Xem README của kho lưu trữ để biết hướng dẫn triển khai Docker Compose và Helm.


Kết luận

Code Interpreter API cung cấp một cách an toàn và thuận tiện để thực thi mã và quản lý tệp trong một sandbox biệt lập. Cho dù bạn đang sử dụng nó thông qua Agents của LibreChat hay tích hợp trực tiếp vào các ứng dụng của mình, nó đều cung cấp một giải pháp mạnh mẽ cho các nhu cầu thực thi mã.

Để biết các thông số kỹ thuật chi tiết, hướng dẫn triển khai và tài liệu tham khảo API, hãy xem code-interpreter repository.

#LibreChat #CodeExecution #API #Development

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