·3 分钟阅读
新 AI 接口:GLM(智谱AI)现已上线
你的应用现在可以同时使用 GLM 和 Gemini。OpenAI 兼容格式,支持流式输出,无需 API Key。
featureaiglm
为你的应用新增 AI 模型
我们新增了一个 AI 接口:`/api/ai/glm` —— 由智谱AI (GLM) 提供支持,这是中国领先的大语言模型之一。
这意味着你在 gapp.so 上的应用现在可以使用两个 AI 服务商:
- Gemini 通过
/api/ai/gemini(Google) - GLM 通过
/api/ai/glm(智谱AI)
和 Gemini 一样:无需 API Key,无需配置,直接可用。
为什么选择 GLM?
- 出色的中文能力 —— GLM 在中文内容生成方面表现优异,非常适合中文应用和双语应用
- OpenAI 兼容格式 —— 如果你用过 OpenAI 的 API,你已经知道怎么用 GLM 了
- 快速且强大 —— 默认的
glm-5模型具有出色的推理和生成能力 - 支持流式输出 —— 实时 token 流式传输,让 UI 响应更迅速
可用模型
| 模型 | 用途 |
|---|---|
glm-5 | 最新旗舰模型,强推理能力(默认) |
glm-5-turbo | GLM-5 的快速版本 |
glm-4.7 | 上一代模型,依然强大 |
glm-4.7-flash | 快速且免费 |
在请求中指定模型:
body: JSON.stringify({
model: 'glm-5', // 或上面的任意模型
messages: [{ role: 'user', content: '你好' }]
})如果不指定模型,默认使用 glm-5。
如何使用
基本请求
async function askGLM(message) {
const response = await fetch('/api/ai/glm', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
messages: [
{ role: 'user', content: message }
]
})
});
const data = await response.json();
return data.choices?.[0]?.message?.content || '无响应';
}
const reply = await askGLM('给我介绍一下长城');带系统提示
async function askGLM(message, systemPrompt) {
const response = await fetch('/api/ai/glm', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: message }
]
})
});
const data = await response.json();
return data.choices?.[0]?.message?.content;
}
const reply = await askGLM(
'推荐一道菜',
'你是一个中华美食专家,请简洁地回答。'
);流式输出
async function streamGLM(message, onChunk) {
const response = await fetch('/api/ai/glm', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
messages: [{ role: 'user', content: message }],
stream: true
})
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const text = decoder.decode(value);
for (const line of text.split('\n')) {
if (!line.startsWith('data: ') || line === 'data: [DONE]') continue;
const json = JSON.parse(line.slice(6));
const content = json.choices?.[0]?.delta?.content;
if (content) onChunk(content);
}
}
}
// 使用
streamGLM('写一首短诗', (chunk) => {
process.stdout.write(chunk); // 或追加到 DOM
});多轮对话
const messages = [
{ role: 'system', content: '你是一个友好的导师。' }
];
async function chat(userMessage) {
messages.push({ role: 'user', content: userMessage });
const response = await fetch('/api/ai/glm', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ messages })
});
const data = await response.json();
const reply = data.choices[0].message.content;
messages.push({ role: 'assistant', content: reply });
return reply;
}GLM vs Gemini:什么时候用哪个
GLM (/api/ai/glm) | Gemini (/api/ai/gemini) | |
|---|---|---|
| 格式 | OpenAI 兼容(messages) | Google Generative AI 格式 |
| 中文内容 | 优秀 | 良好 |
| 英文内容 | 良好 | 优秀 |
| 图片生成 | 不支持 | 支持(gemini-3.1-flash-image) |
| 默认模型 | glm-5 | gemini-3-flash-preview |
简单原则: 当你的应用需要出色的中文支持,或者你更喜欢 OpenAI 的消息格式时,使用 GLM。需要图片生成或 Google AI 生态时,使用 Gemini。
你也可以在同一个应用中同时使用两者 —— 例如,用 Gemini 生成图片,用 GLM 处理中文文本。
自带密钥(BYOK)
如果你需要更高的速率限制或想使用特定的 GLM 模型,可以在控制台设置中添加你自己的 API Key。密钥会被加密安全存储。
速率限制
GLM 与 Gemini 共享相同的速率限制配额。如果需要更多额度,添加你自己的 API Key(BYOK)即可无限使用。
准备试试了吗?只需将 fetch 请求指向 /api/ai/glm,开始构建吧!