news 2026/9/29 5:51:49

不懂代码也能造?TRAE+GLM-4.6 手把手教你搭心理咨询智能客服小程序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
不懂代码也能造?TRAE+GLM-4.6 手把手教你搭心理咨询智能客服小程序

1. 心理咨询智能客服小程序,零代码基础也能跑通

心理咨询机构的客服有个很现实的痛点:访客往往在深夜、周末情绪最需要出口的时候来咨询,问的多是预约流程、收费标准、咨询师资质、隐私保护这类标准问题。人工客服不可能 24 小时在线,而且每次回答的口径还容易不一致。我接触过几家做心理服务的小团队,他们最想要的就是一个能先挡在前面的智能客服,把重复问题接住,真正需要人工介入时再转接。

这篇要做的,就是用 TRAE 搭配 GLM-4.6,从零搭一个心理咨询智能客服小程序原型。你不需要懂 Python,也不需要懂小程序语法,只要能把需求说清楚,剩下的交给 AI 编程助手。整套路径覆盖三块:需求怎么拆、对话逻辑怎么设计、小程序怎么接入后端。最后我会给出一份可复制的 TRAE 项目配置骨架和 GLM-4.6 接入参数,并带你做一次本地运行和对话效果验证,确保你跑通第一个能用的原型。

适合谁看:完全没写过代码但想验证 AI 应用的产品同学、心理咨询机构的运营负责人、想快速做 demo 的创业者。读完你能得到一个能对话、能返回知识库答案的智能客服雏形,而不是一堆看不懂的报错。

2. 前置准备:TRAE 项目骨架与 GLM-4.6 接入参数

在动手之前,先把两件事定下来:一是 TRAE 里的项目规则,二是 GLM-4.6 的调用入口。TRAE 的核心玩法是给 AI 助手设定角色和项目规则,这样它生成的代码才会落在你约定的框架里,而不是每次给你换一套技术栈。

2.1 在 TRAE 里设定项目规则

打开 TRAE,新建一个项目,然后在项目规则里写清楚这几条约束。你可以直接复制下面这段作为项目规则:

项目名称:心理咨询智能客服 后端语言:Python 3.9 后端框架:FastAPI 前端框架:uni-app(一套代码覆盖微信、抖音小程序) 接口风格:RESTful,统一前缀 /api/v1 配置管理:所有密钥和 ID 放在 .env 文件,不硬编码 代码注释:每个函数写清楚用途和参数

这段规则的作用是给 AI 划边界。我试过不写规则直接问,AI 一会儿给 Flask 一会儿给 Django,改起来反而更累。写清楚之后,它生成的main.py、config.py、router.py结构基本一致,你只需要填密钥就能跑。

2.2 拿到 GLM-4.6 的调用凭证

GLM-4.6 通过标准 API 调用,你需要准备三样东西:API Key、智能体 ID、知识库 ID。API Key 在控制台的 API Keys 页面生成,智能体和知识库在平台里创建后各自有独立 ID。

如果你还没开通,可以走这个入口:注册后进入控制台,在 API Keys 页面创建密钥。地址是 https://taotoken.net/api ,控制台和密钥管理在 https://taotoken.net/console ,密钥页在 https://taotoken.net/api-keys 。模型对话调试可以用 https://taotoken.net/model-chat ,接入文档在 https://taotoken.net/doc 。

拿到之后,在项目根目录建一个.env文件,内容长这样:

GLM_API_KEY=你的APIKey GLM_AGENT_ID=你的智能体ID GLM_KNOWLEDGE_ID=你的知识库ID GLM_BASE_URL=https://taotoken.net/api

注意:.env不要提交到公开仓库,这是最容易踩的坑。很多新手直接把 Key 写进代码里,结果一分享就泄露了。

2.3 知识库和智能体的关系

这里有个概念要理清,不然你会像我第一次那样绕弯路。知识库是“教材”,智能体是“学了教材的客服”。你先把心理咨询机构的资料(服务项目、收费、咨询师介绍、预约流程、隐私政策)整理成 Markdown 或 PDF,上传到知识库,平台会自动解析和向量化。然后在智能体配置里把知识库挂上去,这样调用智能体 API 时它就会参考知识库回答,不需要你单独再调一次知识库 API。

我一开始就是分开调了两个接口,结果答案重复又混乱。后来把知识库直接绑到智能体上,只调智能体 API,输出就干净多了。

3. 可复制配置:后端 FastAPI 骨架与对话逻辑

这一章是核心,给你一份能直接跑的配置骨架。你不需要逐行理解,照着建文件、填内容即可。

3.1 目录结构

在 TRAE 里让 AI 生成项目时,最终目录大概是这样:

backend/ ├── app/ │ ├── main.py │ ├── core/ │ │ ├── config.py │ │ └── exceptions.py │ ├── api/ │ │ ├── router.py │ │ └── chat.py │ └── services/ │ └── glm_service.py ├── requirements.txt └── .env

3.2 配置文件 config.py

from pydantic_settings import BaseSettings class Settings(BaseSettings): app_name: str = "心理咨询智能客服" glm_api_key: str = "" glm_agent_id: str = "" glm_knowledge_id: str = "" glm_base_url: str = "https://taotoken.net/api" class Config: env_file = ".env" settings = Settings()

3.3 对话服务 glm_service.py

这是整个项目的“大脑”,负责把用户问题发给 GLM-4.6 智能体并拿回答案。

import httpx from app.core.config import settings async def ask_agent(question: str, history: list = None) -> str: url = f"{settings.glm_base_url}/v1/agents/{settings.glm_agent_id}/chat" headers = { "Authorization": f"Bearer {settings.glm_api_key}", "Content-Type": "application/json" } payload = { "messages": (history or []) + [{"role": "user", "content": question}], "knowledge_id": settings.glm_knowledge_id, "temperature": 0.3 } async with httpx.AsyncClient(timeout=30) as client: resp = await client.post(url, json=payload, headers=headers) resp.raise_for_status() data = resp.json() return data["choices"][0]["message"]["content"]

temperature设成 0.3 是有意的。心理咨询场景要的是稳定、可复现的回答,不是创意写作。温度太高,同一个问题两次回答口径不一致,访客会困惑。

3.4 对话接口 chat.py

from fastapi import APIRouter from pydantic import BaseModel from app.services.glm_service import ask_agent router = APIRouter() class ChatRequest(BaseModel): question: str history: list = [] @router.post("/chat") async def chat(req: ChatRequest): answer = await ask_agent(req.question, req.history) return {"code": 0, "answer": answer}

3.5 主入口 main.py

from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.api.router import router app = FastAPI(title="心理咨询智能客服API") app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) app.include_router(router, prefix="/api/v1") @app.get("/health") async def health(): return {"status": "healthy"}

跨域配置必须加,否则小程序前端请求会被浏览器拦截,你会看到一堆 CORS 报错。

3.6 依赖文件 requirements.txt

fastapi==0.110.0 uvicorn==0.29.0 httpx==0.27.0 pydantic-settings==2.2.1

4. 验证请求:本地运行与对话效果确认

配置写完了,现在跑起来看效果。这一步能帮你确认后端真的通了,而不是自我感觉良好。

4.1 启动后端服务

在 TRAE 终端里执行:

cd backend pip install -r requirements.txt uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

看到Uvicorn running on http://0.0.0.0:8000就说明服务起来了。--reload会在你改代码后自动重启,开发阶段很方便。

4.2 用 curl 验证对话接口

新开一个终端,发一条测试请求:

curl -X POST http://127.0.0.1:8000/api/v1/chat \ -H "Content-Type: application/json" \ -d '{"question":"你们晚上有咨询师在线吗?","history":[]}'

如果返回类似下面的结构,说明链路通了:

{ "code": 0, "answer": "我们的在线咨询时间为每天 9:00-22:00,夜间如需紧急支持,可拨打心理援助热线。" }

4.3 小程序端接入

前端用 uni-app 模板,在聊天页面里把请求指向你的后端地址。核心代码就一段:

uni.request({ url: 'http://127.0.0.1:8000/api/v1/chat', method: 'POST', data: { question: userInput, history: chatHistory }, success: (res) => { chatHistory.push({ role: 'assistant', content: res.data.answer }) } })

在 HBuilderX 里运行到微信小程序模拟器,输入问题,看到客服回复就说明前后端打通了。第一次跑大概率会遇到黑屏或请求失败,别慌,看下一章的排查。

5. 本篇常见错排查

这一章是我踩过的坑,按出现频率排序。

5.1 401 或 403:密钥没生效

最常见的原因是.env文件没被读取,或者 Key 填错了。检查两点:一是.env和config.py在同一层级能被找到;二是 Key 前后没有多余空格。改完.env后要重启服务,--reload不会自动重载环境变量。

5.2 知识库答案不生效

如果你发现回答是模型自己编的,而不是知识库里的内容,先确认知识库有没有绑定到智能体上。在智能体配置页找到知识库关联项,勾选你的知识库。绑定后只调智能体 API 即可,不要再单独调知识库接口,否则会出现答案拼接混乱。

5.3 小程序请求被拦截

浏览器和小程序模拟器都会做跨域检查。后端main.py里的CORSMiddleware必须加,allow_origins开发阶段可以设["*"],上线前改成具体域名。如果还是失败,检查请求地址是不是写成了localhost,小程序模拟器有时解析不了,换成127.0.0.1更稳。

5.4 服务启动报模块找不到

多半是pip install没在正确的虚拟环境里执行。确认你cd到了backend目录,并且requirements.txt里的包都装上了。如果用了 conda 或 venv,先激活环境再装。

5.5 AI 改代码改乱了方向

这是用 TRAE 时特有的坑。AI 有时会自作主张重构你的目录结构,或者换掉你定好的框架。遇到这种情况,直接中断它的操作,把项目规则再贴一遍,明确告诉它“不要改目录结构,只修改 chat.py”。我试过几次,及时纠正比让它跑完再回滚省事得多。

6. 后续接入与长期编码建议

跑通原型只是第一步。如果你打算把这个智能客服真正用起来,接下来要做的是把本地地址换成可访问的服务地址,并在小程序后台配置合法域名。这部分官方文档写得很清楚,照着做就行。

对于需要长期迭代、频繁改代码的场景,比如你要不断调整对话逻辑、加新功能,建议用 Coding Plan 这类面向编码场景的方案,配合 TRAE 的智能体工作流,改起来会顺很多。入口在 https://taotoken.net/coding-plan 。如果你更想先验证模型对话效果,可以先用模型对话页调试提示词,地址是 https://taotoken.net/model-chat 。接入过程中遇到接口报错,优先查接入文档 https://taotoken.net/doc ,大部分参数问题那里都有说明。

最后说个真实体会:零代码基础做 AI 应用,最大的障碍不是技术,而是不敢开始。你不需要先学完 Python 再动手,带着一个明确的目标,让 AI 当领航员,在实践中遇到问题再解决问题,反而学得更快。我见过太多人卡在“等我学完再开始”,结果一直没开始。先跑通一个能对话的原型,哪怕它很粗糙,你就已经跨过了最难的那道门槛。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 5:48:53

SQL Server 判断table是否在使用replicate功能

--table是否在使用replicate功能 publication: select name from sys.tables where is_published1 order by 1subscription: SELECT distinct [publisher],[publisher_db],[publication],[article]FROM [db_name].[dbo].[MSreplication_objects]where articletable_nameorder b…

作者头像 李华
网站建设 2026/9/29 5:48:41

superpowers工作流:把AI编码助手变成主动执行引擎

1. 为什么需要一套“编码超能力”工作流我第一次接触“superpowers”这个概念,是被团队里一个极客同事安利的。他当时正在调一个几十万行的历史遗留Java服务,需求是从一堆纠缠不清的状态机里剥离出独立鉴权模块。这种活儿放在以前,光是梳理调…

作者头像 李华
网站建设 2026/9/29 5:48:12

MindSpore中Transformers模型的在线监控回调实战

1. 项目概述:为什么训练过程不能“黑箱”运行? 在MindSpore生态里跑一个Transformers模型,比如BERT、ViT或者ChatGLM的轻量变体,很多人卡在第一步——不是模型搭不出来,而是训练跑起来之后,心里没底。Loss…

作者头像 李华
网站建设 2026/9/29 5:48:06

TensorFlow工业部署核心:SavedModel、TFLite与CUDA版本管理

1. 这不是“又一个深度学习框架”——TensorFlow 是怎么从实验室走向工业产线的你搜“tensorflow”,页面上跳出来的几乎全是安装报错截图、版本冲突警告、GPU驱动不匹配的崩溃日志,还有人问“学TF还是PyTorch?”。但真正用过TensorFlow三年以…

作者头像 李华
网站建设 2026/9/29 5:47:12

GinCdn内容分发系统Ubuntu18-24被控节点怎么部署安装?

GinCdn内容分发系统Ubuntu18-24被控节点部署安装教程GinCdn是一款轻量级的内容分发系统,本文将详细讲解在Ubuntu 18.04~24.04系统中,如何快速部署GinCdn被控节点,全程通过命令行操作,新手也能轻松上手。一、部署前准备1. 环境要求…

作者头像 李华