Skip to content

Latest commit

 

History

History
67 lines (48 loc) · 2.34 KB

File metadata and controls

67 lines (48 loc) · 2.34 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

项目概述

基于讯飞开放平台的智能聊天机器人。后端已实现三项核心能力:Spark LLM 多轮对话、语音识别(STT)、语音合成(TTS)。当前交互方式为 CLI 命令行菜单。

运行方式

cd /path/to/py-chatbot
python main.py

无需虚拟环境,系统级 Python 已安装依赖。

架构

main.py                  # CLI 入口 + 菜单调度
├── spark_service.py     # 讯飞星火 LLM v3.5,多轮对话
│                        #   chat(question) → 单轮
│                        #   chat_with_history(question, messages) → 多轮(有状态)
├── iat_service.py       # 讯飞语音听写,麦克风实时采集 + 流式转写
│                        #   microphone_stream() → 返回识别文本
└── tts_service.py       # 讯飞语音合成,流式文本转语音
                         #   speech_synthesis(text) → 流式播放

所有服务通过 python-dotenv 从 .env 读取 API 凭证(APP_ID, API_KEY, API_SECRET)。各 Service 模块使用惰性单例模式(_service = None → get_service())。

关键依赖

包 用途
spark-ai-python 星火大模型 SDK(ChatSparkLLM)
xfyunsdkspeech 讯飞语音 SDK(IatClient, TtsClient)
PyAudio 麦克风采集 + 音频播放
websockets / websocket-client 底层 WebSocket(SDK 依赖)
python-dotenv 读取 .env

.env 与安全

.env 包含真实的讯飞 API 凭证,绝对不能提交到版本控制。当前不在 .gitignore 中——添加 .env 到 .gitignore 是首要任务。

设计文档

前端设计文档位于 docs/superpowers/specs/2026-07-16-chatbot-frontend-design.md。

已确定的技术方向(尚未实施):

  • 后端:FastAPI 封装现有 Service 为 REST + WebSocket API
  • 前端:React + Vite + Zustand + Tailwind CSS(ChatGPT 风格 UI)
  • 支持全模式:文字对话 + 语音输入(STT)+ 语音输出(TTS)
  • v1 单用户,架构预留多用户扩展

开发命令

# 后端
uvicorn server.main:app --reload --host 0.0.0.0 --port 8000
python -m pytest server/tests/ -v

# 前端
cd client && npm run dev
cd client && npm test