我们将构建的聊天应用具备以下核心功能:
- 支持用户输入文本消息并发送
- 通过讯飞星火 API 与 AI 模型进行实时交互
- 以流式方式展示 AI 的响应内容,模拟打字效果
- 区分显示用户消息与 AI 消息
- 每条消息附带时间戳
- 处理网络请求过程中的各种异常情况
下面是完整的实现方案,包含所有源代码。
实现效果:

首先,我们来看一下项目的主要结构:

该类用于封装单条消息的数据,包括内容、发送者类型、时间戳等信息。
RecyclerView 适配器负责将消息数据展示到 UI 上,并根据消息类型(用户 / AI)使用不同的布局。
主活动是应用的核心,负责协调 UI 交互和业务逻辑。
该类封装了与讯飞星火 API 的交互逻辑,包括签名生成、WebSocket 连接管理和响应处理等。
需要填的api已经加密,请自行修改
(1)user_message_bg.xml
(2)bot_message_bg.xml
该应用的核心特性之一是支持流式响应展示,实现方式如下:
- 当用户发送消息后,应用首先添加一个空的 AI 消息占位符
- 通过 WebSocket 与 API 建立长连接,接收实时返回的部分结果
- 每次收到部分结果时,更新占位符消息的内容并刷新 UI
- 当 API 返回完整结果后,标记消息为完成状态并移除光标
这种方式能够模拟打字机效果,提升用户体验。
讯飞星火 API 采用基于 HMAC-SHA256 的签名机制,确保请求的安全性:
- 生成当前 GMT 时间
- 使用 API 密钥对时间、主机和路径信息进行 HMAC-SHA256 加密,生成签名
- 将 API 密钥、算法、签名等信息进行 Base64 编码,生成 Authorization 头
- 构建包含 Authorization 和时间信息的 WebSocket URL
应用实现了多层次的错误处理:
- API 配置检查:确保 API_KEY、API_SECRET 和 APP_ID 已正确配置
- 连接重试:当 WebSocket 连接失败时,自动重试最多 3 次
- 响应验证:检查 API 返回的状态码,处理错误信息
- 异常捕获:捕获并处理可能的异常,如 JSON 解析错误、网络错误等
- 首先,你需要在讯飞开放平台注册账号并创建应用,获取 API_KEY、API_SECRET 和 APP_ID, 官网:讯飞开放平台-以语音交互为核心的人工智能开放平台
- 将这些信息替换到中的对应常量
- 确保你的设备已连接网络
- 运行应用,在输入框中输入问题并点击发送按钮即可与 AI 进行对话
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/217786.html