项目概述
本文介绍如何在微信小程序中集成 AI 对话功能,使用 Cogito-V1-Preview-Llama-3B 模型。核心流程为:用户输入 -> 小程序 -> 后端服务器 -> AI 模型 -> 返回结果。
1. 环境准备
在动手写代码之前,需理清整体流程。目标是用户在微信小程序里输入问题,小程序将问题发送给部署好的 AI 模型服务器,服务器处理完再把答案传回小程序显示给用户。
你需要准备的东西:
- 一个微信小程序账号:去微信公众平台注册,拿到小程序的 AppID。
- 一个后端服务器:需要有一个运行 AI 模型的服务器,并成功部署了 Cogito-V1-Preview-Llama-3B 模型,拿到它的 API 访问地址(例如
https://your-server-address/v1/chat/completions)。 - 代码编辑器:小程序前端用微信开发者工具,后端推荐使用 VS Code。
关于模型选择:Cogito-V1-Preview-Llama-3B 参数量是 30 亿,在轻量级模型里表现均衡,对话能力、逻辑推理都够用,生成速度也相对较快。最关键的是,它对服务器资源要求没那么高,部署和运行的成本更友好,非常适合作为小程序的后端服务。
2. 后端搭建:让 AI 模型准备好接客
后端的工作很简单,就是提供一个 API 接口。小程序发来一段对话内容,后端调用 Cogito 模型生成回复,然后再把回复传回去。这里用 Python 的 FastAPI 来写,因为它轻快,适合这种 IO 密集型的网络服务。
首先,确保你的服务器上已经部署好了模型,并且知道怎么用代码去调用它。假设模型服务本身已经在运行并提供了 API。
第一步,安装必要的包:
pip install fastapi uvicorn httpx
httpx 用来作为 HTTP 客户端,去请求我们部署的模型服务。
第二步,编写核心的后端 API: 我们在项目根目录创建一个 main.py 文件。
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
import httpx
import json
from pydantic import BaseModel
from typing import List, Optional
# 定义请求体的数据模型,这决定了小程序要传什么数据过来
class ChatMessage(BaseModel):
role: str # 角色,比如 "user" 或 "assistant"
content: str # 消息内容
class ChatRequest():
messages: [ChatMessage]
max_tokens: [] =
app = FastAPI(title=)
app.add_middleware(
CORSMiddleware,
allow_origins=[],
allow_credentials=,
allow_methods=[],
allow_headers=[],
)
MODEL_API_URL =
():
payload = {
: ,
: [msg.() msg request.messages],
: request.max_tokens,
:
}
httpx.AsyncClient(timeout=) client:
:
response = client.post(MODEL_API_URL, json=payload)
response.raise_for_status()
result = response.json()
ai_reply = result[][][][]
{: ai_reply}
httpx.RequestError e:
HTTPException(status_code=, detail=)
(KeyError, IndexError, json.JSONDecodeError) e:
HTTPException(status_code=, detail=)
Exception e:
HTTPException(status_code=, detail=)
():
{: , : }

