APIMaster.ai

開發者的 LLM API — 2026 整合指南 | APIMaster.ai

LLM API 開發者指南:驗證、串流、函式呼叫、嵌入、RAG、非同步模式與成本管理。可透過 APIMaster 搭配 Claude、GPT 及 DeepSeek 使用。

開發者的 LLM API:完整整合指南

本指南涵蓋開發者將 LLM API 整合至生產環境應用程式所需的一切:驗證、串流、工具使用、嵌入、RAG 模式及成本管理。所有範例皆採用 OpenAI 相容格式,並可搭配 APIMaster.ai 使用。

設定

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_APIMASTER_KEY",
    base_url="https://apimaster.ai/v1",
)

核心模式

1. 基本聊天完成

def ask(prompt: str, model: str = "claude-sonnet-4-6") -> str:
    response = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
    )
    return response.choices[0].message.content

2. 系統提示詞 + 對話

class Conversation:
    def __init__(self, system: str, model: str = "claude-sonnet-4-6"):
        self.model = model
        self.messages = [{"role": "system", "content": system}]
    
    def send(self, user_msg: str) -> str:
        self.messages.append({"role": "user", "content": user_msg})
        resp = client.chat.completions.create(
            model=self.model,
            messages=self.messages,
        )
        reply = resp.choices[0].message.content
        self.messages.append({"role": "assistant", "content": reply})
        return reply

bot = Conversation("你是專業的 Python 開發者。")
print(bot.send("什麼是 GIL?"))
print(bot.send("如何繞過它?"))

3. 串流

def stream(prompt: str, model: str = "gpt-5.4"):
    with client.chat.completions.stream(
        model=model,
        messages=[{"role": "user", "content": prompt}],
    ) as s:
        for text in s.text_stream:
            yield text

for chunk in stream("說明 Python 中的 async/await"):
    print(chunk, end="", flush=True)

4. 結構化輸出

from pydantic import BaseModel
from typing import List

class ExtractedData(BaseModel):
    entities: List[str]
    sentiment: str
    summary: str

import json

response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "system", "content": f"提取資料並回傳符合此結構的 JSON:{ExtractedData.schema()}"},
        {"role": "user", "content": "Apple 報告創紀錄營收。執行長 Tim Cook 稱其表現卓越。"},
    ],
    response_format={"type": "json_object"},
)

data = ExtractedData(**json.loads(response.choices[0].message.content))
print(data.entities)    # ["Apple", "Tim Cook"]
print(data.sentiment)   # "positive"

5. 工具使用 / 函式呼叫

import json

tools = [
    {
        "type": "function",
        "function": {
            "name": "execute_sql",
            "description": "執行唯讀 SQL 查詢",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string"},
                    "database": {"type": "string", "enum": ["users", "orders", "products"]},
                },
                "required": ["query", "database"],
            },
        },
    }
]

def handle_tool_call(tool_name: str, args: dict) -> str:
    # Your implementation
    return json.dumps({"result": "mock data"})

def agent_loop(user_msg: str):
    messages = [{"role": "user", "content": user_msg}]
    
    while True:
        resp = client.chat.completions.create(
            model="gpt-5.4",
            messages=messages,
            tools=tools,
        )
        
        if resp.choices[0].finish_reason != "tool_calls":
            return resp.choices[0].message.content
        
        # Process tool calls
        messages.append(resp.choices[0].message)
        for tc in resp.choices[0].message.tool_calls:
            result = handle_tool_call(tc.function.name, json.loads(tc.function.arguments))
            messages.append({"role": "tool", "tool_call_id": tc.id, "content": result})

6. 嵌入

def embed(texts: list[str]) -> list[list[float]]:
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=texts,
    )
    return [item.embedding for item in response.data]

# Semantic similarity
import numpy as np

def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

vecs = embed(["Python 很棒", "我喜歡 Python", "Java 很囉嗦"])
print(cosine_similarity(vecs[0], vecs[1]))  # High: ~0.95
print(cosine_similarity(vecs[0], vecs[2]))  # Lower: ~0.70

7. RAG(檢索增強生成)

from typing import List

def rag_query(user_question: str, knowledge_base: List[str]) -> str:
    # Step 1: Embed the question
    q_embedding = embed([user_question])[0]
    doc_embeddings = embed(knowledge_base)
    
    # Step 2: Find most relevant docs
    similarities = [cosine_similarity(q_embedding, d) for d in doc_embeddings]
    top_indices = sorted(range(len(similarities)), key=lambda i: similarities[i], reverse=True)[:3]
    context = "\n\n".join(knowledge_base[i] for i in top_indices)
    
    # Step 3: Generate answer with context
    response = client.chat.completions.create(
        model="claude-sonnet-4-6",
        messages=[
            {"role": "system", "content": f"僅使用以下背景資訊回答:\n\n{context}"},
            {"role": "user", "content": user_question},
        ],
    )
    return response.choices[0].message.content

8. 非同步高吞吐

import asyncio
from openai import AsyncOpenAI

async_client = AsyncOpenAI(
    api_key="YOUR_APIMASTER_KEY",
    base_url="https://apimaster.ai/v1",
)

async def process_batch(prompts: list[str]) -> list[str]:
    tasks = [
        async_client.chat.completions.create(
            model="gpt-4o-mini",
            messages=[{"role": "user", "content": p}],
            max_tokens=100,
        )
        for p in prompts
    ]
    responses = await asyncio.gather(*tasks)
    return [r.choices[0].message.content for r in responses]

# Process 50 prompts concurrently
results = asyncio.run(process_batch(my_prompts))

生產環境檢查清單

  • API 金鑰放在環境變數中,而非原始碼
  • 使用指數退避重試機制處理 429/500 錯誤
  • 設定 max_tokens 避免成本失控
  • 對使用者介面回應時間 > 2 秒的場景使用串流
  • 記錄請求及 Token 數量以追蹤成本
  • 設定速率限制器以符合供應商限制

選擇合適的模型

使用場景 模型 成本層級
原型開發 deepseek-v4-flash 或 gpt-4o-mini 極低
生產聊天機器人 claude-haiku-4-5
程式碼助手 deepseek-v4-flash 或 claude-sonnet-4-6 低 – 中
複雜分析 claude-sonnet-4-6
研究 / 推理 claude-opus-4-8 或 o3

常見問題

什麼是 LLM API? LLM API 是一種 HTTP 介面,讓你的程式碼傳送文字提示詞並接收 AI 生成的回應。你傳送 messages 陣列,API 回傳完成結果。大多數採用 OpenAI Chat Completions 格式。

如何選擇 LLM API 提供商? 考量模型能力(評測基準)、每個 Token 的成本、延遲與可靠度。對於大多數使用案例,DeepSeek V4 Flash(低成本編碼)、Claude Sonnet(寫作/分析)或 GPT-4o(多模態)足以涵蓋常見需求。APIMaster 讓你可以一行程式碼切換提供商。

什麼是 OpenAI 相容 API? 一個實作與 OpenAI 相同 /v1/chat/completions 格式的端點,讓你能夠使用 openai Python 函式庫或任何 OpenAI 相容工具來操作非 OpenAI 模型。

如何在生產環境中處理 LLM API 錯誤? 捕捉 RateLimitError(以退避重試)、APIConnectionError(重試)以及 InvalidRequestError(修正提示詞)。使用逾時與斷路器來確保生產環境的穩定性。

能否使用一個 API 金鑰搭配多個 LLM 提供商? 可以——APIMaster 提供單一金鑰與端點,即可使用 GPT、Claude、DeepSeek 與 Gemini。只需變更 model 參數即可切換模型。無需各提供商的金鑰或 SDK。

取得 LLM API 存取權限 → · 比較模型 →