คู่มือการใช้งาน

API Gateway ที่รองรับ OpenAI API format — ใช้งานกับทุก framework ที่รองรับ OpenAI ได้เลย

Quick Start

ใช้งาน Gateway นี้เหมือน OpenAI API ทุกประการ — เปลี่ยนแค่ base_url และ api_key

# Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
base_url="https://ai-proxy.origins.observer/v1",
api_key="sk-your-api-key",
)
response = client.chat.completions.create(
model="workers-ai/llama-3.3-70b",
messages=[{"role": "user", "content": "Hello!"}],
)

API Endpoints

MethodEndpointคำอธิบาย
POST/v1/chat/completionsChat / Text generation (streaming + OpenAI tool calling on HTTP providers)
POST/v1/embeddingsText → Vector embeddings
POST/v1/images/generationsText → Image generation
GET/v1/modelsรายการ models ที่ใช้ได้
GET/v1/memoriesดู memories ของ API key นี้
POST/v1/memoriesเพิ่ม memory แบบ manual (pinned fact)
PUT/v1/memories/:idแก้ไข memory
DELETE/v1/memories/:idลบ memory

💬 Chat Completions

# curl
curl https://ai-proxy.origins.observer/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "workers-ai/llama-3.3-70b",
"messages": [{"role": "user", "content": "สวัสดี"}],
"stream": false
}'

Parameters ที่รองรับ:

modelmessagesstreamtemperaturetop_pmax_tokensstopfrequency_penaltypresence_penaltyseedtop_kntoolstool_choiceparallel_tool_calls

OpenAI Tool Calling

Gateway รองรับการส่งผ่าน tools, tool_choice, assistant messages ที่มี tool_calls และ messages role tool สำหรับ provider แบบ HTTP/OpenAI-compatible โดยให้ client หรือ workflow เช่น n8n เป็นผู้ execute tool เอง

หมายเหตุ: routes ที่ใช้ workers_ai รองรับเฉพาะบางรุ่นที่ระบบ mark capability ไว้แล้ว เช่น @cf/google/gemma-4-26b-a4b-it

🔢 Embeddings

curl https://ai-proxy.origins.observer/v1/embeddings \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{"model": "workers-ai/bge-base-en-v1.5", "input": "Hello world"}'

Embedding Models:

ModelDimensionsภาษา
workers-ai/bge-small-en-v1.5384EN
workers-ai/bge-base-en-v1.5768EN
workers-ai/bge-large-en-v1.51024EN
workers-ai/bge-m31024Multilingual

🎨 Image Generation

curl https://ai-proxy.origins.observer/v1/images/generations \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{"model": "workers-ai/flux-1-schnell", "prompt": "a cute cat", "size": "1024x1024"}'

Response จะเป็น b64_json (base64-encoded PNG)

Image Models:

workers-ai/flux-1-schnellworkers-ai/sdxl-lightningworkers-ai/dreamshaper-8-lcm

Chat Models ทั้งหมด

ModelProviderหมายเหตุ
openai/gpt-4oOpenAI
openai/gpt-4o-miniOpenAIเร็ว ราคาถูก
gemini/gemini-2.0-flashGeminiเร็ว
gemini/gemini-2.0-proGemini
modal/llama-3.1-8bModalSelf-hosted vLLM
workers-ai/llama-4-scoutWorkers AILlama 4 MoE
workers-ai/llama-3.3-70bWorkers AI70B params
workers-ai/gemma-4-26bWorkers AI256k ctx · tools · vision
workers-ai/gemma-3-12bWorkers AI
workers-ai/gemma-sea-lion-v4-27bWorkers AISEA multilingual
workers-ai/deepseek-r1-32bWorkers AIReasoning model
workers-ai/qwen2.5-coder-32bWorkers AICode-optimized
workers-ai/mistral-7bWorkers AI

ใช้งานกับ Framework อื่น

LangChain (Python)

from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
base_url="https://ai-proxy.origins.observer/v1",
api_key="sk-your-key",
model="workers-ai/llama-3.3-70b",
)

JavaScript / TypeScript

import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://ai-proxy.origins.observer/v1",
apiKey: "sk-your-key",
});

cURL

curl https://ai-proxy.origins.observer/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{"model":"workers-ai/llama-3.3-70b","messages":[{"role":"user","content":"Hi"}]}'

ฟีเจอร์ของ Gateway

OpenAI API Compatible

ใช้งานกับ OpenAI SDK, LangChain, LlamaIndex ได้เลย

Tool Calling Compatible

ส่งผ่าน tools, tool_calls และ role: tool ได้สำหรับ HTTP/OpenAI-compatible providers

Multi-Provider Routing

OpenAI, Gemini, Modal, Workers AI — route ผ่าน gateway เดียว

API Key Management

สร้าง/จัดการ API keys พร้อม budget limit และ rate limit

Usage Tracking

Track tokens, cost, latency ทุก request

Streaming Support

รองรับ SSE streaming เหมือน OpenAI

Model Access Control

กำหนดได้ว่า key ไหนใช้ model อะไรได้บ้าง

Long-Term Memory

จำบทสนทนาข้าม session ด้วย Vectorize + D1 พร้อม AI importance scoring

Auto Memory Cleanup

Cron ลบ memories เก่า/ไม่สำคัญอัตโนมัติ จำกัด 500/user

🧠 Long-Term Memory System

Gateway มีระบบ memory ที่จำบทสนทนาข้าม session ได้ ทำให้ AI จำข้อมูลของผู้ใช้ได้ เช่น ชื่อ ความชอบ เหตุการณ์ที่เคยเล่า

วิธีทำงาน:

  1. ทุกข้อความที่ส่ง → embed ด้วย bge-m3 (multilingual) → เก็บใน Vectorize
  2. บทสนทนาเต็ม (User + Assistant) → เก็บใน D1 database
  3. AI ให้คะแนน importance 1-10 ทุกข้อความ — ข้อมูลส่วนตัว (8-10), เหตุการณ์ (6-7), คำถามทั่วไป (3-5)
  4. เมื่อถามคำถาม → semantic search หาบทสนทนาที่เกี่ยวข้อง → inject เข้า context

Auto Cleanup (Cron ทุกวัน):

  • ลบ memories ที่ ไม่เคยถูก access + เก่ากว่า 30 วัน
  • ลบ memories ที่ เก่ากว่า 90 วัน ไม่ว่าจะถูก access หรือไม่
  • จำกัด สูงสุด 500 memories/user — เกินแล้วลบตัวที่ importance ต่ำออกก่อน
  • Pinned memories ไม่ถูกลบอัตโนมัติ

Memory API:

# ดู memories ทั้งหมด
curl https://ai-proxy.origins.observer/v1/memories \
-H "Authorization: Bearer sk-your-key"
# เพิ่ม memory แบบ manual (pinned)
curl https://ai-proxy.origins.observer/v1/memories \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{"content": "ชื่อมานนท์ อาศัยอยู่กรุงเทพ", "category": "personal", "importance": 9}'
# ลบ memory
curl -X DELETE https://ai-proxy.origins.observer/v1/memories/MEMORY_ID \
-H "Authorization: Bearer sk-your-key"

📝 หมายเหตุ

  • • Memory ต้องเปิดใช้งานใน API key (เปิดผ่าน Admin → API Keys)
  • • ข้อความสั้นกว่า 15 ตัวอักษร หรือเป็นคำทักทาย จะไม่ถูกบันทึก
  • • Vectorize มี delay เล็กน้อย (eventually consistent) — memories จะค่อยๆ พร้อมใช้หลังจากสร้างไม่กี่วินาที