VI ▾
Lấy khóa API

URL cơ sở API GLM: Kết nối mọi ứng dụng OpenAI

URL cơ sở API GLM cho dịch vụ này là https://api.glmapi.cc/v1, ID mô hình là uncensored và xác thực là khóa Bearer tiêu chuẩn. Dưới đây là các cài đặt chính xác cho curl, Python, Node và các giao diện chat thông thường, cùng các lỗi gây ra phần lớn các lần gọi đầu tiên thất bại.

Điểm chính

  • URL cơ sở: https://api.glmapi.cc/v1. Mô hình: uncensored. Tiêu đề: Authorization: Bearer <key>.
  • Hai endpoint: POST /v1/chat/completions và GET /v1/models.
  • Hầu hết lỗi kết nối đến từ việc thiếu /v1, đường dẫn bị nhân đôi hoặc dấu gạch chéo cuối bị dán thừa.
  • Đây là một endpoint độc lập, không phải API chính thức của nhà cung cấp đằng sau GLM hay bất kỳ nhà cung cấp nào khác.
Terminal được nối bằng cáp phát sáng với máy chủ, minh họa việc trỏ ứng dụng vào URL cơ sở API mới

Ba giá trị bạn cần

Một câu hỏi về URL cơ sở API GLM thường đến từ người dùng có ứng dụng muốn một URL, một khóa và tên mô hình, nhưng không biết giá trị nào đi đâu. Dưới đây là tất cả trong một nơi.

Cài đặtGiá trị
URL gốchttps://api.glmapi.cc/v1
ID mô hìnhuncensored
Tiêu đề xác thựcAuthorization: Bearer YOUR_KEY
Endpoint chatPOST /v1/chat/completions
Danh sách mô hìnhGET /v1/models

Một lời giải thích trước khi bạn sao chép bất cứ thứ gì. Tên trên tên miền đề cập đến từ khóa tìm kiếm, không phải tên mô hình. Đây là API văn bản tương thích OpenAI được lưu trữ cho một mô hình trọng số mở do nhà cung cấp độc lập vận hành, được tinh chỉnh để trả lời mà không từ chối nội dung cho mục đích sử dụng hợp pháp của người trưởng thành. Đây không phải API chính thức của nhà cung cấp đằng sau GLM và không phải bộ định tuyến chuyển tiếp đến các nhà cung cấp khác. Nếu bạn cần mô hình GLM chính thức, hãy sử dụng dịch vụ của nhà cung cấp đó.

Bạn nhận được khóa API bằng cách đăng ký với Google hoặc bằng email và mật khẩu. Trang khóa API cũng có tính năng nhận dùng thử $0.50 chỉ với một cú nhấp chuột, có hiệu lực trong 7 ngày mà không cần thẻ.

Kiểm tra kết nối với curl

Trước khi tương tác với bất kỳ SDK hoặc ứng dụng nào, hãy xác nhận khóa và URL bằng một yêu cầu đơn giản. Nếu điều này hoạt động, mọi vấn đề sau đó đều nằm ở cấu hình client của bạn chứ không phải tài khoản. Đầu tiên, hãy liệt kê các mô hình:

curl https://api.glmapi.cc/v1/models \
  -H "Authorization: Bearer YOUR_KEY"

Bạn sẽ nhận được danh sách JSON bao gồm id uncensored. Sau đó gửi một yêu cầu hoàn thành chat:

curl https://api.glmapi.cc/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Reply with the word ready."}],
    "max_tokens": 20
  }'

Thêm -i để xem các tiêu đề phản hồi. Chúng bao gồm X-Request-Id, X-Balance-USD (tín dụng còn lại của bạn), X-RateLimit-Limit-Requests và X-RateLimit-Limit-Concurrency. Hãy giữ lại ID yêu cầu nếu bạn cần hỏi hỗ trợ về một yêu cầu.

Python và Node

Cả hai SDK OpenAI chính thức đều chấp nhận URL cơ sở tùy chỉnh. Bạn thay đổi hai đối số khởi tạo và tên mô hình; phần còn lại của mã của bạn vẫn giữ nguyên.

Python

from openai import OpenAI

client = OpenAI(
    base_url="https://api.glmapi.cc/v1",
    api_key="YOUR_KEY",
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Give me three names for a tavern."}],
)
print(resp.choices[0].message.content)

Node.js

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.glmapi.cc/v1",
  apiKey: process.env.GLM_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Give me three names for a tavern." }],
});
console.log(resp.choices[0].message.content);

Thuộc tính Node là baseURL viết hoa, trong khi đối số Python là base_url. Trộn lẫn chúng là cách kinh điển để ngầm quay lại máy chủ mặc định của SDK và nhận lỗi xác thực từ máy chủ sai.

Biến môi trường thay vì mã

Các SDK OpenAI đọc OPENAI_BASE_URL và OPENAI_API_KEY từ môi trường khi bạn không truyền chúng một cách rõ ràng. Đây là cách ít xâm lấn nhất để đổi đích cho một công cụ bạn không thể chỉnh sửa, chẳng hạn như một tập lệnh từ kho lưu trữ hoặc một khung xây dựng client cho bạn.

export OPENAI_BASE_URL="https://api.glmapi.cc/v1"
export OPENAI_API_KEY="YOUR_KEY"
python my_existing_script.py

Bạn vẫn phải đặt tên mô hình bên trong công cụ hoặc tệp cấu hình của nó thành uncensored, vì không có biến môi trường nào chứa nó. Nếu công cụ có menu thả xuống mô hình chỉ liệt kê các tên mà nó biết, hãy tìm tùy chọn mô hình tùy chỉnh hoặc văn bản tự do.

Giữ các giá trị ở một nơi

Sau khi kết nối hoạt động, hãy tránh dán URL vào năm tệp khác nhau. Đặt ba giá trị ở một nơi và đọc chúng ở mọi nơi khác. Tệp .env hoạt động cho các dự án nhỏ:

GLM_BASE_URL=https://api.glmapi.cc/v1
GLM_API_KEY=YOUR_KEY
GLM_MODEL=uncensored

Sau đó, tải chúng một lần khi khởi động và tạo một client duy nhất mà phần còn lại của chương trình sẽ nhập vào. Lợi ích thể hiện rõ vào ngày bạn thay đổi khóa, thêm một khóa staging với số dư dùng thử, hoặc so sánh endpoint này với một endpoint khác. Bạn chỉ chỉnh sửa một tệp, không phải cơ sở mã của mình.

Giữ các khóa riêng biệt cho môi trường phát triển và sản xuất nếu tài khoản cho phép, và xoay khóa ngay lập tức nếu nó xuất hiện trong commit, ảnh chụp màn hình hoặc nhật ký chia sẻ. Khóa bị rò rỉ sẽ tiêu tốn tín dụng trả trước của bạn và tín dụng sẽ không được hoàn lại.

Ứng dụng chat và framework

Giao diện khác nhau về cách diễn đạt nhưng yêu cầu cùng ba giá trị. Hãy tìm loại kết nối được gọi là OpenAI-compatible, custom OpenAI hoặc tương tự, sau đó điền vào:

  • URL API / URL cơ sở: https://api.glmapi.cc/v1
  • Khóa API: khóa từ tài khoản của bạn
  • Mô hình: uncensored

SillyTavern cho phép bạn thêm endpoint tương thích OpenAI thông qua nguồn hoàn thành chat tùy chỉnh của nó, và Open WebUI có loại kết nối tương thích OpenAI trong cài đặt của nó. Các framework như LangChain lấy base_url trên lớp mô hình chat của chúng, và LiteLLM có thể định tuyến một mô hình kiểu OpenAI qua URL cơ sở API tùy chỉnh. Tên menu thay đổi giữa các phiên bản, vì vậy hãy theo dõi tài liệu hiện tại của từng dự án để biết chính xác vị trí của trường đó.

Một số ứng dụng hỏi xem bạn có muốn tự thêm /chat/completions hay không. Nhiều ứng dụng làm vậy, có nghĩa là URL bạn nhập phải kết thúc ở /v1. Nếu ứng dụng thay vào đó yêu cầu endpoint đầy đủ, hãy cung cấp cho nó https://api.glmapi.cc/v1/chat/completions. Hướng dẫn nhanh hiển thị chi tiết hơn các trường yêu cầu được hỗ trợ.

Tại sao lần gọi đầu tiên thất bại

Nếu thử nghiệm curl thành công và ứng dụng của bạn vẫn báo lỗi, nguyên nhân gần như luôn là một trong những điều sau đây:

  • Thiếu /v1. Chỉ sử dụng https://api.glmapi.cc sẽ hầu như chắc chắn thất bại với lỗi not-found, vì các tuyến nằm dưới /v1.
  • Đường dẫn bị lặp. Ứng dụng tự thêm /chat/completions và bạn cũng đã nhập nó, tạo ra /chat/completions/chat/completions. Hãy bỏ nó khỏi URL cơ sở.
  • Dấu gạch chéo cuối. Một số ứng dụng ghép nối đường dẫn kém. Hãy xóa dấu / cuối cùng nếu bạn thấy dấu gạch chéo kép trong URL được ghi lại.
  • Tên mô hình sai. ID mô hình duy nhất là uncensored. Các tên từ các dịch vụ khác sẽ không khớp.
  • Vấn đề về khóa. Hãy kiểm tra khoảng trắng hoặc dòng thừa khi dán, và xem khóa có được gửi dưới dạng Bearer hai lần bởi ứng dụng đã tự thêm tiền tố hay không.
  • Gọi máy chủ sai. Trong ứng dụng trình duyệt, URL cơ sở chưa được đặt sẽ quay lại máy chủ mặc định của SDK. Hãy ghi lại URL yêu cầu thực tế.

Các lệnh gọi từ phía trình duyệt cũng làm lộ khóa của bạn cho bất kỳ ai mở công cụ dành cho nhà phát triển. Đối với một trang web công khai, hãy gửi yêu cầu từ máy chủ của riêng bạn và giữ khóa đó ở đó.

Khi không có điều nào trong số đó giải thích được, hãy làm ngược lại từ trường hợp nhỏ nhất. Chạy lệnh curl từ trước đó trên cùng máy với ứng dụng bị lỗi. Nếu curl thành công ở đó, mạng và khóa đều ổn và ứng dụng đang xây dựng yêu cầu khác biệt, vì vậy hãy bật nhật ký gỡ lỗi của ứng dụng và so sánh URL, tiêu đề và thân JSON được ghi lại với phiên bản curl, từng ký tự một. Nếu curl thất bại chỉ trên máy đó, hãy xem xét proxy doanh nghiệp, quy tắc VPN và bộ lọc DNS, những thứ đôi khi chặn các tên máy chủ API lạ. Một yêu cầu chưa bao giờ đến máy chủ sẽ không trả về X-Request-Id, đây là cách nhanh chóng để phân biệt hai trường hợp.

Giới hạn và phản hồi 429

Khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút. Khóa dùng thử cho phép 2 và 60. Vượt quá bất kỳ giới hạn nào và API sẽ trả về HTTP 429 với mã rate_limited (quá nhiều mỗi phút) hoặc concurrency (quá nhiều cùng lúc). Trong thời gian quá tải tạm thời, bạn cũng nhận được 429, với tiêu đề Retry-After: 5.

Một yêu cầu truyền phát giữ vị trí đồng thời của nó cho đến khi luồng kết thúc, vì vậy một ứng dụng mở luồng và bỏ nó mà không đóng kết nối có thể tự làm cạn kiệt tài nguyên. Kích thước tối đa của thân yêu cầu là 8 MB và cửa sổ ngữ cảnh là 100,000 token bao gồm prompt và completion cùng nhau. Để biết giá và nạp tiền, hãy xem trang giá.

Truyền phát, công cụ và JSON dùng chung URL

Không có địa chỉ riêng cho truyền phát hoặc gọi hàm. Mọi thứ đều gửi đến /v1/chat/completions và bạn bật tính năng trong thân yêu cầu. Một yêu cầu truyền phát đặt "stream": true và trả về các sự kiện do máy chủ gửi; một yêu cầu có công cụ thêm tools và tùy chọn tool_choice; chế độ JSON thêm response_format với loại json_object. Các trường lấy mẫu như temperature, top_p, stop, seed và các hình phạt được chuyển tiếp.

Đây là một lệnh gọi curl truyền phát. Cờ -N tắt bộ đệm đầu ra của curl, vì vậy bạn thấy các chunk khi chúng đến:

curl -N https://api.glmapi.cc/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","stream":true,"messages":[{"role":"user","content":"Count to five."}]}'

Nếu proxy hoặc lớp lưu trữ của bạn đệm phản hồi, truyền phát sẽ trông giống như một phản hồi lớn bị trì hoãn. Các proxy ngược thường cần tắt bộ đệm phản hồi cho các sự kiện do máy chủ gửi, vì vậy hãy kiểm tra cài đặt đó trước khi đổ lỗi cho API. Để xem phiên bản Python đã hoàn thành cho mỗi tính năng, hãy xem hướng dẫn nhanh.

Hỏi đáp

URL cơ sở của API này là gì?

https://api.glmapi.cc/v1. Các yêu cầu chat được gửi đến /chat/completions bên dưới URL này, và danh sách mô hình nằm ở /models.

Tôi nên sử dụng tên mô hình nào?

Hãy dùng uncensored. Đây là ID mô hình duy nhất và nó hoạt động trên mọi client kiểu OpenAI cho phép bạn nhập một mô hình tùy chỉnh.

Đây có phải là GLM API chính thức không?

Không. Đây là dịch vụ độc lập, tương thích OpenAI, chạy một mô hình trọng số mở và không phải là API chính thức của bất kỳ nhà cung cấp nào.

Tiêu đề nào chứa khóa?

Authorization: Bearer theo sau là khóa của bạn. Các SDK của OpenAI sẽ tự thêm phần này khi bạn truyền khóa.

Tôi có cần thẻ để kiểm tra kết nối không?

Không. Tính năng dùng thử $0.50 chỉ với một cú nhấp chuột, có hiệu lực trong 7 ngày, có sẵn trên trang khóa API sau khi đăng ký.

Khóa của bạn chỉ cách một biểu mẫu

Tạo tài khoản, sao chép khóa, thay đổi URL cơ sở. Đó là toàn bộ thiết lập.

Lấy khóa APIĐọc tài liệu