GetAiApiKey/Danh sách kiểm tra API AI cho production
Cách cài đặt LLM trong Python: Local hoặc API
Bạn có thể chạy một mô hình trên máy của mình, hoặc bạn có thể cài đặt một gói Python nhỏ và gọi một mô hình được lưu trữ qua HTTP. Trang này bao gồm cả hai, sau đó hướng dẫn từng bước qua lộ trình API.
Cập nhật

Điểm chính
- Cài đặt local cần weights mô hình và đủ bộ nhớ; lộ trình API chỉ cần gói openai và một khóa.
- Đặt base URL thành https://api.getaiapikey.com/v1 và mô hình thành uncensored.
- Truyền phát, gọi công cụ và chế độ JSON đều hoạt động thông qua client OpenAI tiêu chuẩn.
- Xử lý HTTP 429 bằng cách thử lại ngắn và giữ các cuộc gọi đồng thời ở mức 8 trở xuống.
Hai ý nghĩa của việc cài đặt LLM
Khi mọi người hỏi cách cài đặt llm trong python, họ thường muốn nói đến một trong hai điều. Thứ nhất là chạy một mô hình local: tải xuống weights và tải chúng bằng một thư viện trên CPU hoặc GPU của riêng bạn. Thứ hai là cài đặt một thư viện client để mã Python của bạn có thể giao tiếp với một mô hình chạy ở đâu đó khác. Cả hai đều hợp lệ và cái đúng phụ thuộc vào phần cứng của bạn và những gì bạn muốn xây dựng.
Lộ trình API ngắn hơn nhiều. Bạn chạy pip install openai, trỏ client vào một base URL và gọi mô hình. Không có weights, không có trình điều khiển GPU, không cần lập kế hoạch bộ nhớ. Phần còn lại của trang này cung cấp các bước và mã cho lộ trình đó, với một phần ngắn về phần local để bạn so sánh.
Cài đặt local hoặc API được lưu trữ: cách chọn
| Câu hỏi | Cài đặt local | API lưu trữ |
|---|---|---|
| Những gì bạn cài đặt | Thư viện suy luận cộng với weights mô hình | Gói openai |
| Phần cứng | Bộ nhớ và thường là GPU có kích thước phù hợp với mô hình | Bất kỳ máy nào có thể thực hiện các cuộc gọi HTTPS |
| Chi phí | Phần cứng và điện của bạn | Theo token, từ tín dụng trả trước |
| Hoạt động ngoại tuyến | Có | Không |
| Thời gian để phản hồi đầu tiên | Tải xuống, thiết lập, tinh chỉnh | Vài phút |
Cài đặt local có ý nghĩa nếu bạn phải giữ mọi thứ trên một máy, cần làm việc ngoại tuyến hoặc muốn thử nghiệm với chính weights. Các thư viện như liên kết llama.cpp hoặc Hugging Face transformers là điểm khởi đầu thông thường; hãy kiểm tra tài liệu của riêng chúng về yêu cầu phần cứng, vì những yêu cầu đó phụ thuộc vào kích thước mô hình bạn chọn.
API có ý nghĩa nếu bạn muốn có kết quả hoạt động nhanh chóng, máy tính xách tay của bạn không thể chứa một mô hình lớn hoặc ứng dụng của bạn cần phục vụ nhiều người dùng. Bạn trả tiền theo token thay vì mua phần cứng. Đối với dịch vụ này là $0,15 cho 1 triệu token đầu vào và $0,50 cho 1 triệu token đầu ra, không có đăng ký. Trang giá cả có chi tiết.
Bước 1: tạo môi trường ảo và cài đặt gói
Sử dụng môi trường ảo để cài đặt được sạch sẽ. Bất kỳ bản phát hành Python 3 gần đây nào cũng hoạt động với gói openai.
python3 -m venv .venv
source .venv/bin/activate
pip install openai
Tiếp theo, bạn cần một khóa. Đăng ký trên trang khóa API bằng Google hoặc bằng email và mật khẩu. Người dùng mới có thể nhận $0,50 tín dụng dùng thử ở đó chỉ với một cú nhấp chuột, có hiệu lực trong 7 ngày và không cần thẻ. Lưu khóa vào biến môi trường thay vì trong tệp nguồn của bạn:
export API_KEY="paste-your-key-here"Bước 2: thực hiện cuộc gọi đầu tiên của bạn
Dịch vụ tương thích với OpenAI, vì vậy những thay đổi duy nhất từ một tập lệnh OpenAI tiêu chuẩn là base URL và ID mô hình. ID mô hình là uncensored.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.getaiapikey.com/v1",
api_key=os.environ["API_KEY"],
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain what a context window is in two sentences."},
],
temperature=0.7,
max_tokens=200,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)
Nếu điều này in ra câu trả lời và hai bộ đếm token, việc cài đặt đã hoàn tất. Để kiểm tra xem khóa của bạn có hoạt động và xem ID mô hình, bạn cũng có thể gọi GET /v1/models:
for m in client.models.list():
print(m.id)
Cùng một yêu cầu từ shell, không cần Python, là một lệnh curl đơn đến https://api.getaiapikey.com/v1/chat/completions với tiêu đề Authorization: Bearer kèm theo khóa của bạn. trang hướng dẫn nhanh hiển thị đầy đủ.
Bước 3: truyền phát token khi chúng đến
Chờ đợi một câu trả lời dài kết thúc trước khi in bất cứ điều gì có vẻ chậm. Đặt stream=True và máy chủ gửi các token qua các sự kiện được gửi bởi máy chủ. Bạn có thể yêu cầu tóm tắt sử dụng trong phần cuối cùng với stream_options.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Write a short scene set in a lighthouse."}],
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
if chunk.usage:
print("\n", chunk.usage.total_tokens, "tokens")
Một chi tiết quan trọng đối với môi trường production: một yêu cầu truyền phát giữ slot đồng thời của nó cho đến khi luồng kết thúc. Khóa đầy đủ cho phép 8 yêu cầu đồng thời, vì vậy nếu ứng dụng của bạn mở nhiều luồng dài, hãy đóng chúng khi người dùng ngắt kết nối.
Bước 4: chế độ JSON và gọi công cụ
Đối với đầu ra có cấu trúc, đặt response_format thành một đối tượng JSON. Cũng cho mô hình biết trong prompt để trả lời bằng JSON, vì cài đặt đảm bảo cú pháp JSON hợp lệ nhưng không đảm bảo các tên trường bạn muốn.
import json
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "Reply only with JSON: {\"title\": string, \"tags\": [string]}"},
{"role": "user", "content": "Give me a title and tags for a post about slow travel."},
],
response_format={"type": "json_object"},
)
data = json.loads(resp.choices[0].message.content)
print(data["title"], data["tags"])
Gọi công cụ theo mẫu tiêu chuẩn. Bạn mô tả một hàm, mô hình có thể yêu cầu gọi nó, bạn tự chạy nó và gửi kết quả lại với role: "tool".
tools = [{
"type": "function",
"function": {
"name": "get_time",
"description": "Return the current time for a city",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}]
messages = [{"role": "user", "content": "What time is it in Lisbon?"}]
first = client.chat.completions.create(
model="uncensored", messages=messages, tools=tools, tool_choice="auto"
)
msg = first.choices[0].message
if msg.tool_calls:
call = msg.tool_calls[0]
messages.append(msg)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps({"time": "14:05"}),
})
final = client.chat.completions.create(
model="uncensored", messages=messages, tools=tools
)
print(final.choices[0].message.content)
Kiểm tra các cuộc gọi công cụ trên một vài prompt trước khi dựa vào chúng. Bất kỳ mô hình nào cũng có thể chọn hàm sai hoặc điền đối số kém, vì vậy hãy xác thực đối số trong mã của riêng bạn trước khi chạy bất cứ điều gì có tác dụng phụ.
Bước 5: xử lý giới hạn và lỗi
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á giới hạn đó, bạn sẽ nhận HTTP 429. Mã lỗi rate_limited có nghĩa là quá nhiều yêu cầu mỗi phút, và concurrency có nghĩa là quá nhiều cùng lúc. Khi quá tải tạm thời, API cũng trả về 429 với tiêu đề Retry-After: 5.
Client Python của OpenAI tự động thử lại một số lỗi, nhưng một wrapper tường minh giữ hành vi rõ ràng:
import time
from openai import RateLimitError
def ask(messages, tries=4):
for attempt in range(tries):
try:
return client.chat.completions.create(model="uncensored", messages=messages)
except RateLimitError:
time.sleep(5 * (attempt + 1))
raise RuntimeError("still rate limited after retries")
Mỗi phản hồi đều mang theo X-Request-Id, X-Balance-USD và các tiêu đề giới hạn tốc độ, mà bạn có thể ghi lại. Hãy bao gồm ID yêu cầu nếu bạn liên hệ hỗ trợ. Các yêu cầu thất bại hoặc bị từ chối không bị tính phí, vì vậy việc thử lại không tốn thêm chi phí.
Cũng hãy lập kế hoạch cho các giới hạn kích thước. Cửa sổ ngữ cảnh là 100.000 token, prompt cộng với bản hoàn thành và phần thân yêu cầu tối đa là 8 MB. Lịch sử trò chuyện dài nên được cắt ngắn hoặc tóm tắt trước khi chúng đạt đến những con số đó.
Khi cuộc gọi không hoạt động
Hầu hết các vấn đề chạy lần đầu đến từ một vài lỗi. Hãy kiểm tra những điều này theo thứ tự trước khi bạn nghi ngờ bất cứ điều gì khác.
- Base URL không có đường dẫn phiên bản. Giá trị phải kết thúc bằng
/v1. Client thêm/chat/completionsvào nó, vì vậy việc thiếu/v1sẽ gửi yêu cầu đến tuyến đường sai. - Sai hoặc thiếu khóa. Khóa nằm trong tiêu đề
Authorization: Bearer, mà client xây dựng từapi_key. Nếu biến môi trường trống, client sẽ đưa ra lỗi khi bắt đầu hoặc gửi một khóa trống. Inbool(os.environ.get("API_KEY"))để kiểm tra. - Tên mô hình từ một dịch vụ khác. ID mô hình duy nhất ở đây là
uncensored. Các tên như những tên trong các hướng dẫn khác sẽ không khớp. - Không có số dư. Hãy xem tiêu đề
X-Balance-USD. Một dùng thử đã vượt quá 7 ngày hoặc số dư đã tiêu hết cần nạp tiền từ $20. - Gói cũ. Nếu một ví dụ sử dụng
OpenAI(và Python nói rằng nó không thể nhập tên đó, bạn có gói pre-1.0. Chạypip install --upgrade openai.
Để xem phản hồi thô bao gồm các tiêu đề, hãy sử dụng wrapper raw-response của client:
raw = client.chat.completions.with_raw_response.create(
model="uncensored",
messages=[{"role": "user", "content": "ping"}],
max_tokens=5,
)
print(raw.headers.get("x-request-id"), raw.headers.get("x-balance-usd"))
completion = raw.parse()
print(completion.choices[0].message.content)
Điều đó in ra ID yêu cầu và số dư còn lại của bạn bên cạnh câu trả lời, đó là một kiểm tra sức khỏe nhanh mà bạn có thể chạy từ một công việc cron hoặc một tập lệnh khởi động.
Sử dụng nó từ các công cụ khác
Bởi vì endpoint tuân theo định dạng OpenAI, các thư viện Python khác có thể sử dụng nó với hai cài đặt giống nhau. Các framework chấp nhận base URL OpenAI tùy chỉnh chỉ cần base_url và api_key. Đối với Node, gói chính thức openai chấp nhận các trường giống nhau:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.getaiapikey.com/v1",
apiKey: process.env.API_KEY,
});
const r = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Say hello in five words." }],
});
console.log(r.choices[0].message.content);
Đây là một dịch vụ chỉ văn bản: không có tạo hình ảnh hoặc âm thanh, không có embedding và không có tinh chỉnh. Nếu dự án của bạn cần những thứ đó, hãy kết hợp API này với một công cụ khác cho phần đó. Mô hình là một mô hình trọng số mở do một nhà cung cấp độc lập chạy và được tinh chỉnh để trả lời mà không có từ chối nội dung cho việc sử dụng người trưởng thành hợp pháp. Nội dung tình dục liên quan đến người chưa thành niên không bao giờ được phép.
Hướng dẫn khác
Hỏi đáp
Tôi có cần GPU để sử dụng LLM trong Python theo cách này không?
Không. Mô hình chạy ở phía nhà cung cấp. Máy của bạn chỉ cần Python và kết nối internet để gọi endpoint.
Tôi cài đặt gói nào?
Cài đặt gói openai chính thức bằng pip. Sau đó đặt base URL thành https://api.getaiapikey.com/v1 và mô hình thành uncensored.
Có cách nào dùng thử miễn phí không?
Người dùng mới có thể nhận $0,50 tín dụng dùng thử chỉ với một cú nhấp chuột sau khi đăng ký. Tín dụng này có hiệu lực trong 7 ngày, không cần thẻ và giới hạn một lần cho mỗi người.
Một yêu cầu tốn bao nhiêu?
Một yêu cầu với 2.000 token đầu vào và 500 token đầu ra tốn $0,00055, từ $0,15 và $0,50 cho mỗi 1 triệu token. Bạn chỉ trả tiền cho các yêu cầu thành công.
Nó có hỗ trợ truyền phát và gọi công cụ không?
Có. Truyền phát qua SSE, gọi công cụ và chế độ JSON đều hoạt động thông qua client OpenAI tiêu chuẩn.
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 base URL. Đó là toàn bộ thiết lập.