SDKs
Python / Node / curl / Java / Go
AICodeDog 完全兼容 OpenAI 协议——任何兼容 OpenAI 的 SDK 都能用,唯一改动是 baseURL。下面给出每种语言的最佳实践代码。
一个心智模型
把 AICodeDog 想成「OpenAI 的兼容代理」。任何把
base_url / baseURL 暴露成参数的 SDK 都能直接用—— 包括 LangChain、LlamaIndex、OpenAI 官方 SDK、Vercel AI SDK 等。Python
安装
bashpip install openai
使用
pythonimport os from openai import OpenAI client = OpenAI( api_key=os.environ["AICODEDOG_KEY"], base_url="https://api.aicodedog.com/v1", ) # Chat resp = client.chat.completions.create( model="gpt-5.4", messages=[{"role": "user", "content": "你好"}], ) print(resp.choices[0].message.content) # Streaming stream = client.chat.completions.create( model="gpt-5.4", messages=[{"role": "user", "content": "讲个故事"}], stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="", flush=True) # Image img = client.images.generate( model="nano-banana-pro", prompt="a sunset over Mt Fuji, ghibli style", size="1024x1024", ) print(img.data[0].url)
Node.js / TypeScript
安装
bashnpm install openai # 或 pnpm add openai
使用
tsimport OpenAI from 'openai'; const client = new OpenAI({ apiKey: process.env.AICODEDOG_KEY, baseURL: 'https://api.aicodedog.com/v1', }); // Chat const resp = await client.chat.completions.create({ model: 'gpt-5.4', messages: [{ role: 'user', content: '你好' }], }); console.log(resp.choices[0].message.content); // Streaming const stream = await client.chat.completions.create({ model: 'gpt-5.4', messages: [{ role: 'user', content: '讲个故事' }], stream: true, }); for await (const chunk of stream) { process.stdout.write(chunk.choices[0]?.delta?.content ?? ''); } // Image const img = await client.images.generate({ model: 'nano-banana-pro', prompt: 'a sunset over Mt Fuji, ghibli style', size: '1024x1024', }); console.log(img.data[0].url);
curl(任何语言都能复用)
bash# Chat curl https://api.aicodedog.com/v1/chat/completions \ -H "Authorization: Bearer $AICODEDOG_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.4", "messages": [{"role": "user", "content": "你好"}] }' # Image curl https://api.aicodedog.com/v1/images/generations \ -H "Authorization: Bearer $AICODEDOG_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-pro", "prompt": "a sunset over Mt Fuji, ghibli style", "size": "1024x1024" }' # Embeddings curl https://api.aicodedog.com/v1/embeddings \ -H "Authorization: Bearer $AICODEDOG_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "text-embedding-3-small", "input": "把这段文字转成向量" }'
Java
推荐用 openai-java 官方 SDK:
javaimport com.openai.client.OpenAIClient; import com.openai.client.okhttp.OpenAIOkHttpClient; import com.openai.models.ChatCompletion; import com.openai.models.ChatCompletionCreateParams; OpenAIClient client = OpenAIOkHttpClient.builder() .apiKey(System.getenv("AICODEDOG_KEY")) .baseUrl("https://api.aicodedog.com/v1") .build(); ChatCompletion resp = client.chat().completions().create( ChatCompletionCreateParams.builder() .model("gpt-5.4") .addUserMessage("你好") .build() ); System.out.println(resp.choices().get(0).message().content());
Go
推荐用 go-openai:
gopackage main import ( "context" "fmt" "os" openai "github.com/sashabaranov/go-openai" ) func main() { config := openai.DefaultConfig(os.Getenv("AICODEDOG_KEY")) config.BaseURL = "https://api.aicodedog.com/v1" client := openai.NewClientWithConfig(config) resp, err := client.CreateChatCompletion(context.Background(), openai.ChatCompletionRequest{ Model: "gpt-5.4", Messages: []openai.ChatCompletionMessage{ {Role: openai.ChatMessageRoleUser, Content: "你好"}, }, }) if err != nil { panic(err) } fmt.Println(resp.Choices[0].Message.Content) }
框架适配
LangChain (Python)
pythonfrom langchain_openai import ChatOpenAI llm = ChatOpenAI( model="gpt-5.4", api_key="<KEY>", base_url="https://api.aicodedog.com/v1", )
LlamaIndex
pythonfrom llama_index.llms.openai import OpenAI llm = OpenAI( model="gpt-5.4", api_key="<KEY>", api_base="https://api.aicodedog.com/v1", )
Vercel AI SDK
tsimport { createOpenAI } from '@ai-sdk/openai'; const aicodedog = createOpenAI({ apiKey: process.env.AICODEDOG_KEY, baseURL: 'https://api.aicodedog.com/v1', }); const result = await streamText({ model: aicodedog('gpt-5.4'), prompt: '你好', });