# 大模型接入

在小程序中，直接调用大模型的文本生成能力，实现最简单的文本生成

小程序基础库需要在 3.15.1 及以上版本，开发者可以直接通过小程序中的 `wx.cloud.extend.AI` 调用云开发售卖的 DeepSeek、混元、GLM、Minimax、Kimi 等最新模型。

## 初始化

在小程序代码中，通过以下代码进行云开发环境初始化：

```js
wx.cloud.init({
    env: "<云开发环境ID>",
});

const ai = wx.cloud.extend.AI;
```

## createModel()

创建指定的 AI 模型。[详细参数定义](../../../../reference-sdk-api/extend/ai/client#AI-createModel)

支持如下模型：

| 模型标识 | 说明 | 模型列表 | 
| --- | --- | --- |
| cloudbase | 云开发售卖的模型 | 详见[模型列表](https://docs.cloudbase.net/ai/available-models) |
| hunyuan-v3 | 废弃，建议使用 cloudbase  | hy3 |

### 使用示例

```js
const model = ai.createModel("cloudbase");
```

## ChatModel.streamText()

以流式调用大模型生成文本。流式调用时，生成的文本及其他响应数据会通过 [SSE](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) 返回，该接口的返回值对 SSE 做了不同程度的封装，开发者能根据实际需求获取到文本流和完整数据流。[详细参数定义](../../../../reference-sdk-api/extend/ai/client#ChatModel-streamText)

### 使用示例

```js
// 连接模型提供商
const provider = ai.createModel("cloudbase");

const res = await provider.streamText({
  data: {
    model: "hy3", // 模型名称
    messages: [
      {
        role: "user",
        content: "hi"
      }
    ]
  }
});

for await (let str of res.textStream) {
   // 打印生成的文本
  console.log(str);
}
for await (let event of res.eventStream) {
  // 打印每次返回的完整数据
  console.log(event); 

  // 当大模型结束传输时，通常会发一条 [DONE] 数据，在此之后即可停止循环
  if (event.data === "[DONE]") {
    break;
  }
}
```

## ChatModel.generateText()

调用大模型生成文本。[详细参数定义](../../../../reference-sdk-api/extend/ai/client#ChatModel-generateText)

### 使用示例

```js
// 连接模型提供商
const provider = ai.createModel("cloudbase");
const res = await provider.generateText({
  model: "hy3",
  messages: [{ role: "user", content: "你好" }],
});
console.log(res);
// {
//   "id": "27dae91f4e9a4777782c61f89acf8ea4",
//   "object": "chat.completion",
//   "created": 1737602298,
//   "model": "hunyuan-2.0-instruct-20251111",
//   "system_fingerprint": "",
//   "choices": [
//     {
//       "index": 0,
//       "message": {
//         "role": "assistant",
//         "content": "你好！很高兴与你交流。请问有什么我可以帮助你的吗？无论是关于生活、工作、学习还是其他方面的问题，我都会尽力为你提供帮助。"
//       },
//       "finish_reason": "stop"
//     }
//   ],
//   "usage": {
//     "prompt_tokens": 3,
//     "completion_tokens": 33,
//     "total_tokens": 36
//   },
//   "note": "以上内容为AI生成，不代表开发者立场，请勿删除或修改本标记"
// }
console.log(res.choices[0].message.content);
// 你好！很高兴与你交流。请问有什么我可以帮助你的吗？无论是关于生活、工作、学习还是其他方面的问题，我都会尽力为你提供帮助。
```

## 相关文档

* [AI SDK 文档](/minigame/dev/wxcloud/reference-sdk-api/extend/ai/client)
