GetAiApiKey/เช็คลิสต์ API AI สำหรับใช้งานจริง
วิธีติดตั้ง LLM ใน Python: แบบโลคอลหรือ API แบบโลคอลหรือ API
คุณสามารถรันโมเดลในเครื่องของคุณเอง หรือติดตั้งแพ็กเกจ Python เล็กๆ แล้วเรียกโมเดลที่โฮสต์ผ่าน HTTP หน้าเว็บนี้ครอบคลุมทั้งสองวิธี จากนั้นจะแนะนำเส้นทาง API ทีละขั้นตอน
อัปเดต

ประเด็นสำคัญ
- การติดตั้งในเครื่องต้องการน้ำหนักโมเดลและหน่วยความจำเพียงพอ ส่วนทาง API ต้องการเพียงแพ็กเกจ openai และคีย์
- ตั้งค่า base URL เป็น https://api.getaiapikey.com/v1 และโมเดลเป็น uncensored
- การสตรีม การเรียกใช้ฟังก์ชัน และโหมด JSON ทำงานผ่านไคลเอนต์ OpenAI มาตรฐานได้
- จัดการ HTTP 429 ด้วยการ retry สั้นๆ และคงจำนวน concurrent calls ไว้ที่ 8 หรือต่ำกว่า
ความหมายสองประการของการติดตั้ง LLM
เมื่อคนถามว่าติดตั้ง llm ใน python อย่างไร มักหมายถึงสิ่งใดสิ่งหนึ่งสองอย่างนี้ ประการแรกคือการรันโมเดลในเครื่อง: ดาวน์โหลด weights และโหลดด้วยไลบรารีบน CPU หรือ GPU ของคุณเอง ประการที่สองคือการติดตั้ง client library เพื่อให้โค้ด Python ของคุณสื่อสารกับโมเดลที่รันที่อื่นได้ ทั้งสองวิธีใช้ได้ และวิธีที่ถูกต้องขึ้นอยู่กับฮาร์ดแวร์และสิ่งที่คุณต้องการสร้าง
เส้นทาง API สั้นกว่ามาก คุณรัน pip install openai ชี้ไคลเอนต์ไปที่ base URL และเรียกโมเดล ไม่ต้องใช้ weights ไม่ต้องติดตั้งไดรเวอร์ GPU ไม่ต้องวางแผนหน่วยความจำ ส่วนที่เหลือของหน้านี้ให้ขั้นตอนและโค้ดสำหรับเส้นทางนี้ พร้อมส่วนสั้นๆ เกี่ยวกับแบบโลคอลเพื่อให้คุณเปรียบเทียบ
การติดตั้งแบบโลคอลหรือ API ที่โฮสต์: วิธีเลือก
| คำถาม | การติดตั้งแบบโลคอล | API แบบโฮสต์ |
|---|---|---|
| สิ่งที่คุณติดตั้ง | ไลบรารีสำหรับการอนุมานพร้อมน้ำหนักโมเดล | แพ็กเกจ openai |
| ฮาร์ดแวร์ | หน่วยความจำและโดยทั่วไปคือ GPU ที่มีขนาดเหมาะสมกับโมเดล | เครื่องจักรใดๆ ก็ตามที่สามารถทำ HTTPS calls ได้ |
| ต้นทุน | ฮาร์ดแวร์และไฟฟ้าของคุณ | ต่อโทเคน จากเครดิตแบบเติมเงินล่วงหน้า |
| ทำงานแบบออฟไลน์ได้ | ใช่ | ไม่ |
| เวลาในการตอบครั้งแรก | ดาวน์โหลด ตั้งค่า ปรับแต่ง | เพียงไม่กี่นาที |
การติดตั้งแบบโลคอลสมเหตุสมผลหากคุณต้องเก็บข้อมูลทั้งหมดไว้ในเครื่องเดียว ต้องการทำงานแบบออฟไลน์ หรือต้องการทดลองกับน้ำหนักโมเดลโดยตรง ไลบรารีเช่น llama.cpp bindings หรือ Hugging Face transformers เป็นจุดเริ่มต้นทั่วไป; โปรดตรวจสอบเอกสารเฉพาะของพวกเขาสำหรับข้อกำหนดฮาร์ดแวร์ เนื่องจากสิ่งเหล่านั้นขึ้นอยู่กับขนาดโมเดลที่คุณเลือก
API เหมาะหากคุณต้องการผลลัพธ์ที่ใช้งานได้เร็ว, แล็ปท็อปของคุณไม่สามารถเก็บโมเดลขนาดใหญ่ได้, หรือแอปของคุณต้องการรองรับผู้ใช้จำนวนมาก คุณจ่ายต่อ token แทนการซื้อฮาร์ดแวร์ สำหรับบริการนี้คือ $0.15 ต่อ 1M input tokens และ $0.50 ต่อ 1M output tokens โดยไม่มีค่าสมาชิก หน้าราคามีรายละเอียด
ขั้นตอนที่ 1: สร้าง virtual environment และติดตั้งแพ็กเกจ
ใช้ virtual environment เพื่อให้การติดตั้งเป็นไปอย่างสะอาด การติดตั้งแพ็กเกจ openai ทำงานได้กับ Python 3 ทุกเวอร์ชันล่าสุด
python3 -m venv .venv
source .venv/bin/activate
pip install openai
ถัดไปคุณต้องการคีย์ ลงทะเบียนที่ หน้าคีย์ API ด้วย Google หรือด้วยอีเมลและรหัสผ่าน ผู้ใช้ใหม่สามารถรับเครดิตทดลองใช้ $0.50 ได้ด้วยการคลิกครั้งเดียว มีอายุ 7 วันและไม่ต้องใช้บัตร เก็บคีย์ไว้ในตัวแปรสภาพแวดล้อมแทนที่จะเก็บไว้ในไฟล์ source code ของคุณ:
export API_KEY="paste-your-key-here"ขั้นตอนที่ 2: ทำการเรียกใช้งานครั้งแรก
บริการนี้เข้ากันได้กับ OpenAI ดังนั้นการเปลี่ยนแปลงจากสคริปต์ OpenAI มาตรฐานมีเพียง base URL และ model ID เท่านั้น model ID คือ 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)
หากผลลัพธ์พิมพ์คำตอบและจำนวนโทเคนสองจำนวน แสดงว่าการติดตั้งเสร็จสมบูรณ์ หากต้องการตรวจสอบว่าคีย์ของคุณใช้งานได้และดู model ID คุณสามารถเรียกใช้ GET /v1/models ได้เช่นกัน:
for m in client.models.list():
print(m.id)
คำขอเดียวกันจาก shell โดยไม่ต้องใช้ Python เลย คือการเรียก curl เดียวไปยัง https://api.getaiapikey.com/v1/chat/completions พร้อม header Authorization: Bearer ตามด้วยคีย์ของคุณ คู่มือเริ่มต้นใช้งานในเอกสารแสดงตัวอย่างเต็มรูปแบบ
ขั้นตอนที่ 3: สตรีมโทเคนเมื่อได้รับ
การรอให้คำตอบยาวๆ เสร็จสิ้นก่อนพิมพ์ผลลัพธ์ใดๆ รู้สึกช้า ตั้งค่า stream=True และเซิร์ฟเวอร์จะส่งโทเคนผ่าน server-sent events คุณสามารถขอสรุปการใช้งานใน chunk สุดท้ายด้วย 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")
รายละเอียดหนึ่งอย่างสำคัญสำหรับการใช้งานจริง: คำขอแบบสตรีมจะครอบครอง slot concurrency จนกว่าสตรีมจะสิ้นสุด คีย์แบบเต็มอนุญาตให้ทำคำขอพร้อมกัน 8 คำขอ ดังนั้นหากแอปของคุณเปิดสตรีมยาวๆ หลายสตรีม ให้ปิดสตรีมเหล่านั้นเมื่อผู้ใช้ตัดการเชื่อมต่อ
ขั้นตอนที่ 4: โหมด JSON และการเรียกใช้ฟังก์ชัน
สำหรับ output แบบมีโครงสร้าง ให้ตั้งค่า response_format เป็น JSON object นอกจากนี้บอกโมเดลใน prompt ให้ตอบเป็น JSON เพราะการตั้งค่านี้รับประกัน valid JSON syntax แต่ไม่รับประกัน field names ที่คุณต้องการ
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"])
Tool calling ปฏิบัติตามรูปแบบมาตรฐาน คุณอธิบายฟังก์ชัน โมเดลอาจขอเรียกใช้ ฟังก์ชันนั้นคุณรันเองและส่งผลลัพธ์กลับด้วย 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)
ทดสอบการเรียกใช้ฟังก์ชันกับพรอมต์ไม่กี่รายการก่อนที่คุณจะพึ่งพาพวกมัน โมเดลใดๆ ก็สามารถเลือกฟังก์ชันผิดหรือเติมอาร์กิวเมนต์ได้ไม่ดี ดังนั้นให้ตรวจสอบอาร์กิวเมนต์ในโค้ดของคุณเองก่อนรันอะไรก็ตามที่มี side effects
ขั้นตอนที่ 5: จัดการขีดจำกัดและข้อผิดพลาด
คีย์แบบเต็มอนุญาตให้ทำคำขอพร้อมกัน 8 คำขอและ 300 คำขอต่อนาที คีย์ทดลองอนุญาตให้ทำ 2 และ 60 เมื่อเกินขีดจำกัดเหล่านี้คุณจะได้รับ HTTP 429 รหัสข้อผิดพลาด rate_limited หมายถึงคำขอมากเกินไปต่อนาที และ concurrency หมายถึงคำขอมากเกินไปในครั้งเดียว เมื่อเกิด overload ชั่วคราว API ยังส่งกลับ 429 พร้อม header Retry-After: 5
ไคลเอนต์ Python ของ OpenAI จะลองเรียกใหม่สำหรับข้อผิดพลาดบางรายการโดยอัตโนมัติ แต่การใช้ wrapper แบบชัดเจนช่วยให้พฤติกรรมชัดเจนขึ้น:
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")
แต่ละการตอบกลับมี X-Request-Id, X-Balance-USD และส่วนหัวขีดจำกัดอัตรา ซึ่งคุณสามารถบันทึกได้ หากติดต่อ ฝ่ายสนับสนุน ให้ระบุ ID คำขอ คำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกเรียกเก็บเงิน ดังนั้นการเรียกซ้ำจึงไม่เสียค่าใช้จ่ายเพิ่ม
นอกจากนี้ควรวางแผนสำหรับข้อจำกัดขนาด หน้าต่างบริบทคือ 100,000 tokens รวม prompt และ completion และขนาด request body สูงสุดคือ 8 MB ประวัติแชทที่ยาวควรถูกตัดหรือสรุปก่อนถึงตัวเลขเหล่านั้น
เมื่อการเรียกใช้งานไม่สำเร็จ
ปัญหาส่วนใหญ่ในการใช้งานครั้งแรกเกิดจากความผิดพลาดไม่กี่ประการ ตรวจสอบสิ่งเหล่านี้ตามลำดับก่อนจะสงสัยอย่างอื่น
- Base URL โดยไม่มีเส้นทางเวอร์ชัน ค่าต้องลงท้ายด้วย
/v1ไคลเอนต์จะเพิ่ม/chat/completionsเข้าไป ดังนั้นหากขาด/v1คำขอจะถูกส่งไปยังเส้นทางที่ผิด - คีย์ผิดหรือไม่มี คีย์จะถูกใส่ใน
Authorization: Bearerheader ซึ่งไคลเอนต์สร้างจากapi_keyหากตัวแปรสภาพแวดล้อมว่าง ไคลเอนต์จะแสดงข้อผิดพลาดเมื่อเริ่มต้นหรือส่งคีย์ว่าง ให้พิมพ์bool(os.environ.get("API_KEY"))เพื่อตรวจสอบ - ชื่อโมเดลจากบริการอื่น ID โมเดลที่นี่มีเพียง
uncensoredเท่านั้น ชื่อเช่นที่ปรากฏในบทช่วยสอนอื่นๆ จะไม่ตรงกัน - ไม่มียอดเงิน ดูที่ header
X-Balance-USDการทดลองใช้ที่ผ่าน 7 วัน หรือยอดเงินที่หมดแล้ว ต้องเติมเงินขั้นต่ำ $20 - แพ็คเกจเก่า หากตัวอย่างใช้
OpenAI(และ Python บอกว่าไม่สามารถนำเข้าชื่อนั้นได้ แสดงว่าคุณใช้แพ็คเกจก่อนเวอร์ชัน 1.0 ให้รันpip install --upgrade openai
เพื่อดูการตอบกลับดิบ รวมถึงส่วนหัว ให้ใช้ wrapper การตอบกลับดิบของไคลเอนต์:
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)
สิ่งนี้จะพิมพ์ ID คำขอและยอดเงินคงเหลือของคุณถัดจากคำตอบ ซึ่งเป็นวิธีการตรวจสอบสถานะอย่างรวดเร็วที่คุณสามารถรันจาก cron job หรือสคริปต์เริ่มต้น
การใช้งานจากเครื่องมืออื่น
เนื่องจากเอนด์พอยต์ปฏิบัติตามรูปแบบ OpenAI ไลบรารี Python อื่นๆ สามารถใช้ได้ด้วยการตั้งค่าสองอย่างเดียวกัน เฟรมเวิร์กที่รองรับ custom OpenAI base URL เพียงแค่ตั้งค่า base_url และ api_key สำหรับ Node แพ็คเกจ official openai รับฟิลด์เดียวกัน:
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);
นี่คือบริการข้อความเท่านั้น: ไม่มีการสร้างภาพหรือเสียง ไม่มี embeddings และไม่มีการปรับแต่งโมเดล (fine-tuning) หากโปรเจกต์ของคุณต้องการสิ่งเหล่านั้น ให้ใช้ API นี้ร่วมกับเครื่องมืออื่นสำหรับส่วนนั้น โมเดลนี้เป็นโมเดลแบบเปิดน้ำหนักที่ดำเนินการโดยผู้ให้บริการอิสระและปรับแต่งเพื่อตอบคำถามโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย เนื้อหาทางเพศที่เกี่ยวข้องกับผู้เยาว์ไม่อนุญาตเด็ดขาด
คู่มือเพิ่มเติม
ถาม-ตอบ
ฉันต้องการ GPU เพื่อใช้ LLM ใน Python แบบนี้หรือไม่?
ไม่ โมเดลทำงานที่ฝั่งผู้ให้บริการ เครื่องของคุณมีเพียง Python และการเชื่อมต่ออินเทอร์เน็ตเพื่อเรียกใช้เอนด์พอยต์ก็เพียงพอ
ฉันควรติดตั้งแพ็กเกจใด?
ติดตั้งแพ็กเกจ openai ทางการด้วย pip จากนั้นตั้งค่า Base URL เป็น https://api.getaiapikey.com/v1 และโมเดลเป็น uncensored
มีวิธีทดลองใช้ฟรีหรือไม่?
ผู้ใช้ใหม่รับเครดิตทดลองใช้ $0.50 ได้คลิกเดียวหลังการลงทะเบียน ใช้ได้ 7 วัน ไม่ต้องใส่บัตร จำกัด 1 ครั้งต่อคน
หนึ่ง request มีค่าใช้จ่ายเท่าใด?
คำขอที่มี 2,000 input tokens และ 500 output tokens มีค่าใช้จ่าย $0.00055 จากอัตรา $0.15 และ $0.50 ต่อ 1M tokens คุณจ่ายเฉพาะคำขอที่สำเร็จ
รองรับสตรีมมิงและการเรียกใช้ฟังก์ชันหรือไม่?
ใช่ การสตรีมมิงผ่าน SSE การเรียกใช้ฟังก์ชัน และโหมด JSON ทำงานผ่านไคลเอนต์ OpenAI มาตรฐานได้ทั้งหมด
คีย์ของคุณอยู่ห่างแค่แบบฟอร์มเดียว
สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด