·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-turboGLM-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-5gemini-3-flash-preview

简单原则: 当你的应用需要出色的中文支持,或者你更喜欢 OpenAI 的消息格式时,使用 GLM。需要图片生成或 Google AI 生态时,使用 Gemini。

你也可以在同一个应用中同时使用两者 —— 例如,用 Gemini 生成图片,用 GLM 处理中文文本。


自带密钥(BYOK)

如果你需要更高的速率限制或想使用特定的 GLM 模型,可以在控制台设置中添加你自己的 API Key。密钥会被加密安全存储。


速率限制

GLM 与 Gemini 共享相同的速率限制配额。如果需要更多额度,添加你自己的 API Key(BYOK)即可无限使用。


准备试试了吗?只需将 fetch 请求指向 /api/ai/glm,开始构建吧!

准备好分享你的作品了吗?

发布你的 AI 应用,几秒钟内获得专属落地页。

提交应用