Cài đặt

Ngôn ngữ

Chuyển đổi từ OpenAI sang LemonData trong 5 phút

L
LemonData
·26 tháng 2, 2026·51 lượt xem
#hướng dẫn#di chuyển#OpenAI#bắt đầu
Chuyển đổi từ OpenAI sang LemonData trong 5 phút

Chuyển đổi từ OpenAI sang LemonData trong 5 phút

Việc chuyển đổi từ API chính thức của OpenAI sang LemonData chỉ mất hai dòng thay đổi mã. Mã hiện tại, prompt và tên model của bạn đều hoạt động bình thường. Bạn cũng có quyền truy cập vào hơn 300 model từ OpenAI, Anthropic, Google, DeepSeek và nhiều hơn nữa, thông qua cùng một API key.

Phiên bản tóm tắt

  1. Đăng ký tại lemondata.cc và lấy một API key (bạn sẽ nhận được $1 credit miễn phí)
  2. Thay thế base_urlapi_key của bạn
  3. Xong. Mọi thứ khác vẫn giữ nguyên.

Python (OpenAI SDK)

# Trước — OpenAI chính thức
from openai import OpenAI
client = OpenAI(api_key="sk-openai-xxx")

# Sau — LemonData (thay đổi 2 dòng)
from openai import OpenAI
client = OpenAI(
    api_key="sk-lemon-xxx",
    base_url="https://api.lemondata.cc/v1"
)

# Mọi thứ khác vẫn giữ nguyên
response = client.chat.completions.create(
    model="gpt-4.1",
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

Streaming, function calling, vision: tất cả đều hoạt động tương tự. OpenAI Python SDK gửi yêu cầu đến bất kỳ base_url nào mà bạn chỉ định.

Node.js (OpenAI SDK)

// Trước — OpenAI chính thức
import OpenAI from 'openai';
const openai = new OpenAI({ apiKey: 'sk-openai-xxx' });

// Sau — LemonData (thay đổi 2 dòng)
import OpenAI from 'openai';
const openai = new OpenAI({
  apiKey: 'sk-lemon-xxx',
  baseURL: 'https://api.lemondata.cc/v1',
});

// Mọi thứ khác vẫn giữ nguyên
const completion = await openai.chat.completions.create({
  model: 'gpt-4.1',
  messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(completion.choices[0].message.content);

Lưu ý: trong Node.js SDK là baseURL (camelCase), không phải base_url.

curl

# Trước — OpenAI chính thức
curl https://api.openai.com/v1/chat/completions \
  -H "Authorization: Bearer sk-openai-xxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4.1","messages":[{"role":"user","content":"Hello"}]}'

# Sau — LemonData (thay đổi URL và key)
curl https://api.lemondata.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-lemon-xxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4.1","messages":[{"role":"user","content":"Hello"}]}'

Cùng đường dẫn endpoint, cùng body yêu cầu, cùng định dạng phản hồi.

Cách tiếp cận bằng biến môi trường

Nếu mã của bạn đọc từ các biến môi trường (điều nên làm), bạn thậm chí không cần chạm vào mã nguồn:

# Trước
export OPENAI_API_KEY="sk-openai-xxx"
export OPENAI_BASE_URL="https://api.openai.com/v1"

# Sau
export OPENAI_API_KEY="sk-lemon-xxx"
export OPENAI_BASE_URL="https://api.lemondata.cc/v1"

OpenAI SDK tự động đọc OPENAI_API_KEYOPENAI_BASE_URL từ môi trường. Không cần thay đổi mã.

Những gì bạn nhận được sau khi chuyển đổi

Khi đã sử dụng LemonData, bạn vẫn giữ được khả năng tương thích hoàn toàn với OpenAI và có thêm các khả năng bổ sung:

Hơn 300 Model, Một API Key

Mã OpenAI hiện tại của bạn giờ đây có thể hoạt động với Claude, Gemini, DeepSeek, Mistral và hàng trăm model khác — chỉ cần thay đổi tham số model:

# GPT-4.1 (OpenAI) — $2.00/$8.00 trên 1M tokens
response = client.chat.completions.create(model="gpt-4.1", messages=messages)

# Claude Sonnet 4.6 (Anthropic) — $3.00/$15.00 trên 1M tokens
response = client.chat.completions.create(model="claude-sonnet-4-6", messages=messages)

# Gemini 2.5 Pro (Google)
response = client.chat.completions.create(model="gemini-2.5-pro", messages=messages)

# DeepSeek V3 — $0.28/$0.42 trên 1M tokens (sử dụng "deepseek-chat" hoặc alias "deepseek-v3")
response = client.chat.completions.create(model="deepseek-chat", messages=messages)

Cơ chế dự phòng đa kênh có nghĩa là nếu một nhà cung cấp thượng nguồn gặp sự cố, gateway sẽ tự động điều hướng sang một kênh thay thế. Không cần thay đổi mã.

Truy cập giao thức gốc (Tùy chọn)

Nếu bạn muốn sử dụng các model của Anthropic hoặc Google với đầy đủ các khả năng gốc (extended thinking, prompt caching với cache_control, Google search grounding), LemonData hỗ trợ các giao thức gốc của họ thông qua cùng một base URL:

# Anthropic gốc — sử dụng Anthropic SDK
# Extended thinking, cache_control, Citations đều hoạt động nguyên bản
from anthropic import Anthropic
client = Anthropic(
    api_key="sk-lemon-xxx",
    base_url="https://api.lemondata.cc"  # Không có /v1 — Anthropic SDK tự thêm /v1/messages
)

# Google Gemini gốc — sử dụng Google SDK
# Search grounding, grounding_metadata đều hoạt động nguyên bản
from google import genai
client = genai.Client(
    api_key="sk-lemon-xxx",
    http_options={"base_url": "https://api.lemondata.cc"}  # Không có hậu tố đường dẫn — SDK tự thêm /v1beta/models/...
)

Đây là tùy chọn hoàn toàn. Endpoint tương thích với OpenAI hoạt động cho tất cả các model. Nhưng nếu bạn cần extended thinking của Anthropic hoặc grounding của Google, việc truy cập giao thức gốc sẽ cung cấp cho bạn các tính năng đó mà không bị mất mát do chuyển đổi định dạng.

Chuyển đổi các tích hợp phổ biến

Cursor

Settings → Models → OpenAI API Key:

  • API Key: sk-lemon-xxx
  • Base URL: https://api.lemondata.cc/v1

LangChain

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4.1",
    api_key="sk-lemon-xxx",
    base_url="https://api.lemondata.cc/v1"
)

Vercel AI SDK

import { createOpenAI } from '@ai-sdk/openai';

const lemondata = createOpenAI({
  apiKey: 'sk-lemon-xxx',
  baseURL: 'https://api.lemondata.cc/v1',
});

const result = await generateText({
  model: lemondata('gpt-4.1'),
  prompt: 'Hello!',
});

LiteLLM

import litellm

response = litellm.completion(
    model="openai/gpt-4.1",
    messages=[{"role": "user", "content": "Hello!"}],
    api_key="sk-lemon-xxx",
    api_base="https://api.lemondata.cc/v1"
)

Xác minh việc chuyển đổi của bạn

Kiểm tra nhanh sau khi chuyển đổi:

curl https://api.lemondata.cc/v1/models \
  -H "Authorization: Bearer sk-lemon-xxx" | head -c 200

Nếu bạn thấy phản hồi JSON với các đối tượng model, bạn đã thành công.

Câu hỏi thường gặp (FAQ)

Các prompt hiện tại của tôi có hoạt động không? Có. LemonData hoàn toàn tương thích với OpenAI. Cùng định dạng yêu cầu, cùng định dạng phản hồi.

Tôi có cần thay đổi tên model không? Không. gpt-4.1, gpt-4o, gpt-4.1-mini — tất cả các tên model OpenAI tiêu chuẩn đều hoạt động. LemonData cũng có hệ thống phân giải model ba lớp: khớp chính xác → tra cứu alias (21 alias tĩnh như gpt4gpt-4, gpt-3.5gpt-3.5-turbo) → sửa lỗi mờ (khoảng cách Levenshtein ≤ 3). Vì vậy, ngay cả các tên đã lỗi thời như gpt-4-turbo hoặc lỗi đánh máy như gpt4o đều được phân giải chính xác.

Còn streaming thì sao? Hoạt động tương tự. Định dạng SSE, cấu trúc chunk giống nhau. Đối với các giao thức Anthropic/Gemini gốc, bạn sẽ nhận được định dạng SSE gốc của từng nhà cung cấp (bao gồm cả thinking deltas cho extended thinking).

Còn function calling / tools thì sao? Được hỗ trợ đầy đủ. Cùng schema, cùng hành vi.

Còn việc xử lý lỗi thì sao? LemonData trả về các lỗi tương thích với OpenAI cùng với các trường bổ sung thân thiện với agent: retryable, did_you_mean, suggestions, retry_after. Việc xử lý lỗi chuẩn của OpenAI SDK vẫn hoạt động không đổi — các trường bổ sung chỉ là phần cộng thêm.

Tôi có thể chuyển đổi ngược lại không? Có. Chỉ cần đổi lại hai dòng mã. Không có sự ràng buộc nào. Không có định dạng độc quyền, không cần di chuyển dữ liệu.


Tài liệu API đầy đủ: docs.lemondata.cc Hướng dẫn bắt đầu nhanh: docs.lemondata.cc/quickstart

Share: