ค่าที่ต้องคัดลอก
ทุกคนที่ค้นหา mimo api base url ต้องการสามค่า และที่เหลือเป็นรายละเอียดของเครื่องมือที่คุณกำลังตั้งค่า
| การตั้งค่า | ค่า |
|---|---|
| URL พื้นฐาน | https://api.mimoapi.top/v1 |
| ID โมเดล | uncensored |
| Auth header | Authorization: Bearer YOUR_KEY |
| เอนด์พอยต์แชท | POST /v1/chat/completions |
| รายการโมเดล | GET /v1/models |
บริการนี้เข้ากันได้กับ OpenAI ดังนั้นไคลเอนต์ใดๆ ที่ให้คุณเปลี่ยน URL ฐานและคีย์ของ OpenAI ได้จะทำงานได้ เป็น API ข้อความแบบโฮสต์ที่รันโมเดลแบบเปิดน้ำหนักหนึ่งตัวจากผู้ให้บริการอิสระ ไม่ใช่ API ทางการของผู้ขายโมเดลใดเลย รองรับเฉพาะข้อความ: ไม่มีการสร้างภาพ เสียง หรือวิดีโอ ไม่มี embeddings และไม่มี fine-tuning ดังนั้นไคลเอนต์ที่คาดหวังเอนด์พอยต์เหล่านั้นจะหาไม่พบ หากคุณยังไม่มีคีย์ หน้าคีย์ใช้เวลาเพียงหนึ่งนาที
Base URL เทียบกับเอนด์พอยต์แบบเต็ม
ความสับสนที่พบบ่อยที่สุดคือระหว่าง Base URL กับ URL ของเอนด์พอยต์ Base URL จะหยุดที่/v1 เอนด์พอยต์คือ Base URL บวกกับพาธ SDK ทางการของ OpenAI และเครื่องมือส่วนใหญ่ที่สร้างจาก SDK เหล่านี้จะรวมทั้งสองอย่างให้คุณ
- Base URL:
https://api.mimoapi.top/v1 - Chat endpoint:
https://api.mimoapi.top/v1/chat/completions - Models endpoint:
https://api.mimoapi.top/v1/models
เมื่อหน้าจอการตั้งค่าถามหา "base URL", "API base", "endpoint" หรือ "host" ให้ดู placeholder ของมัน หาก placeholder ลงท้ายด้วย/v1 ให้วาง Base URL หากลงท้ายด้วย/chat/completions ให้วาง chat endpoint แบบเต็ม การวาง chat endpoint แบบเต็มลงในฟิลด์ที่คาดหวัง Base URL จะทำให้เกิด/chat/completions/chat/completions ซึ่งไม่มีอยู่จริง การวางเพียงโดเมนเปล่าลงในฟิลด์ที่คาดหวัง Base URL จะทำให้เกิด/chat/completions โดยไม่มี/v1 ซึ่งล้มเหลวในลักษณะเดียวกัน
โปรดสังเกตโฮสต์ด้วย API อยู่บน subdomainapi โดเมนเว็บไซต์ธรรมดาให้บริการหน้าเว็บ ดังนั้นคำขอไปยังโดเมนนั้นพร้อมพาธ API จะไม่เข้าถึงโมเดล
Python และ Node
เมื่อใช้ SDK ทางการ คุณตั้งค่า Base URL เพียงครั้งเดียวเมื่อสร้างไคลเอนต์ ติดตั้งด้วยpip install openai หรือnpm install openai
from openai import OpenAI
client = OpenAI(
base_url="https://api.mimoapi.top/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Name three uses for a base URL."}],
max_tokens=150,
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.mimoapi.top/v1",
apiKey: process.env.LLM_API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Name three uses for a base URL." }],
max_tokens: 150,
});
console.log(resp.choices[0].message.content);
SDK OpenAI สำหรับ Python และ Node.js ยังอ่านตัวแปรสภาพแวดล้อมOPENAI_BASE_URL และOPENAI_API_KEY เมื่อคุณไม่ได้ส่งค่าในโค้ด สิ่งนี้ทำให้สามารถเปลี่ยนปลายทางของสคริปต์ที่มีอยู่โดยไม่ต้องแก้ไขได้: ส่งออกตัวแปรทั้งสอง และสคริปต์จะพูดกับ API นี้ ตรวจสอบว่าสคริปต์ไม่ได้ hard-code โมเดลเช่นชื่อ GPT; ให้แทนที่ด้วยuncensored
curl สำหรับการทดสอบอย่างรวดเร็ว
การเรียก HTTP แบบธรรมดาจะกำจัดตัวแปรอื่นๆ ทั้งหมด ดังนั้นจึงเป็นการตรวจสอบเบื้องต้นที่ดีที่สุด คำสั่งแรกจะแสดงรายการโมเดลและยืนยันคีย์ คำสั่งที่สองจะส่งคำขอ chat
export LLM_API_KEY="YOUR_KEY"
curl -s https://api.mimoapi.top/v1/models \
-H "Authorization: Bearer $LLM_API_KEY"
curl -s https://api.mimoapi.top/v1/chat/completions \
-H "Authorization: Bearer $LLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}],"max_tokens":20}' -i
แฟลก -i พิมพ์ส่วนหัวของคำตอบ ดู X-Request-Id (บันทึกไว้หากติดต่อฝ่ายสนับสนุน), X-Balance-USD (เครดิตคงเหลือของคุณ) และส่วนหัวขีดจำกัดอัตราสองตัว, X-RateLimit-Limit-Requests และ X-RateLimit-Limit-Concurrency สำหรับการสตรีมมิง ให้เพิ่ม "stream": true ในบอดี้และ -N ใน curl เพื่อให้เอาต์พุตไม่ถูกบัฟเฟอร์ คู่มือเริ่มต้น 5 นาที จะแนะนำการสตรีมมิงและการเรียกใช้ฟังก์ชันหลังจากนี้
LangChain, chat frontends และเครื่องมืออื่นๆ
เครื่องมือของบุคคลที่สามใช้ป้ายกำกับของตัวเอง แต่ทั้งหมดต้องการค่าสามค่าเดียวกัน รูปแบบบางอย่างที่คุณจะเห็น:
- LangChain (Python):
ChatOpenAI(model="uncensored", base_url="https://api.mimoapi.top/v1", api_key="YOUR_KEY")คลาสเดียวกันใช้งานได้กับเซิร์ฟเวอร์ที่เข้ากันได้กับ OpenAI ใดๆ - SillyTavern และส่วนหน้าแชทสวมบทบาทที่คล้ายกัน: เลือกแหล่งแชท ที่เข้ากันได้กับ OpenAI แบบกำหนดเองหรือทั่วไป วาง Base URL เพิ่มคีย์ และพิมพ์
uncensoredเป็นชื่อโมเดลหากรายการไม่เติมตัวเอง - Open WebUI และ UI แชทแบบโฮสต์เองอื่นๆ: เพิ่มการเชื่อมต่อที่เข้ากันได้กับ OpenAI ในการตั้งค่า โดยใช้ Base URL และคีย์เดียวกัน
- ปลั๊กอินตัวแก้ไขและสคริปต์: มองหา "custom OpenAI endpoint" หรือ "override base URL" ในการตั้งค่าปลั๊กอิน
ชื่อเมนูของเครื่องมือแต่ละตัวเปลี่ยนไปตามเวอร์ชัน ดังนั้นให้พึ่งพาจุดประสงค์ของฟิลด์มากกว่าป้ายกำกับที่แน่นอน หากเครื่องมือยืนยันที่จะตรวจสอบคีย์กับผู้ให้บริการที่กำหนด มันไม่เข้ากันได้กับ custom endpoints และเครื่องมืออื่นคือวิธีแก้ไข
เมื่อเครื่องมือเสนอ dropdown โมเดล มันมักจะเติมรายการนั้นโดยการเรียกGET /v1/models หาก dropdown ว่างเปล่า ให้พิมพ์ ID ของโมเดลด้วยตนเอง หากเครื่องมือปฏิเสธชื่อโมเดลที่ไม่รู้จัก ให้มองหาตัวเลือกที่เรียกว่า "custom model"
การแก้ไขข้อผิดพลาดในการกำหนดค่าที่พบบ่อย
เมื่อคำขอล้มเหลว รหัสสถานะและ URL ที่แน่นอนจะระบุสาเหตุได้รวดเร็ว ทำงานตามรายการนี้
- ข้อผิดพลาดการตรวจสอบสิทธิ์ คีย์หายไป ตัดทอน หรือมีช่องว่างหรือ newline ต่อท้าย วางคีย์อีกครั้ง และตรวจสอบให้แน่ใจว่า header อ่านว่า
Bearerช่องว่าง แล้วตามด้วยคีย์ - ไม่พบเส้นทาง เส้นทางผิด ให้พิมพ์ URL สุดท้ายที่ไคลเอนต์ของคุณสร้าง ควรเป็น
https://api.mimoapi.top/v1/chat/completionsตรวจดูว่าขาด/v1, มีเส้นทางซ้ำ หรือโฮสต์ผิด - โมเดลไม่รู้จัก ชื่อโมเดลตกค้างจากผู้ให้บริการรายอื่น ตั้งค่าโมเดลเป็น
uncensored - HTTP 429 พร้อม
rate_limitedหรือconcurrency. คุณเกิน 300 คำขอต่อนาทีหรือ 8 คำขอพร้อมกัน (60 และ 2 สำหรับคีย์ทดลอง) ลดความเร็วหรือจัดคิวคำขอ 429 พร้อมส่วนหัวRetry-After: 5หมายถึงการโอเวอร์โหลดชั่วคราว; รอห้าวินาทีแล้วลองใหม่ - Request ใหญ่เกินไป ขีดจำกัดของ body คือ 8 MB และหน้าต่างบริบทคือ 100,000 โทเคนสำหรับพรอมต์รวมกับการสร้างข้อความ ให้ตัดประวัติออก
- ทำงานใน curl แต่ล้มเหลวในเบราว์เซอร์ การเรียก API โดยตรงจาก JavaScript หน้าบ้านจะเปิดเผยคีย์ของคุณให้ทุกคนที่เข้าชม เรียกผ่านเซิร์ฟเวอร์ของคุณเอง
อย่าใส่คีย์ใน repository สาธารณะหรือบันเดิลฝั่งไคลเอนต์ เก็บไว้ในตัวแปรสภาพแวดล้อม และเก็บให้พ้นจากภาพหน้าจอและตั๋วสนับสนุน
ขั้นตอนถัดไปหลังการเรียกครั้งแรกสำเร็จ
เมื่อ URL ฐานทำงานได้แล้ว มีการตั้งค่าอยู่ไม่กี่อย่างที่ควรทราบ การสตรีมมิงผ่าน SSE เปิดใช้งานด้วย stream: true การเรียกใช้ฟังก์ชันใช้ tools และ tool_choice โดยส่งผลลัพธ์กลับเป็นข้อความ role: "tool" โหมด JSON คือ response_format: {"type": "json_object"} การควบคุมการสุ่มตัวอย่างเช่น temperature, top_p, stop, seed และค่าปรับจะถูกส่งผ่าน
ในด้านการเงิน คุณจ่าย $0.15 ต่อ 1M โทเคนอินพุตและ $0.50 ต่อ 1M โทเคนเอาต์พุตจากเครดิตแบบเติมเงินล่วงหน้า; หน้าราคา ระบุขนาดการเติมเงินและโบนัส โมเดลได้รับการปรับแต่งเพื่อตอบโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย และเนื้อหาทางเพศที่เกี่ยวข้องกับผู้เยาว์ไม่ได้รับอนุญาตโดยเด็ดขาด พรอมต์ไม่ถูกใช้สำหรับการฝึก
