Skip to content

Commit f088548

Browse files
committed
add
1 parent 171dd6a commit f088548

15 files changed

Lines changed: 1373 additions & 15 deletions

File tree

.vscode/settings.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{
2+
}

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,17 @@ curl -X 'POST' \
3030

3131
# 部署
3232

33+
## 只有后端时启动
3334
```commandline
3435
fastapi run main.py
3536
```
37+
## 后端+前端启动
38+
```commandline
39+
uvicorn main:app --host 0.0.0.0 --port 8000
40+
解释:Uvicorn是一个ASGI服务器,负责接收HTTP请求并转发给FastAPI应用处理。FastAPI本身只是一个框架,不负责网络监听;uvicorn才是真正"跑起来"的那个进程
41+
main:app → main是Python模块名,对应main.py文件;app是该模块里的变量,即main.py里的app = FastAPI()
42+
uvicorn会先 import main,然后拿到main.py里的FastAPI实例,开始监听请求
43+
```
3644

3745
# 推广
3846
```commandline

config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515

1616
TFIDF_MODEL_PKL_PATH = "assets/weights/tfidf_ml.pkl"
1717

18-
BERT_MODEL_PKL_PATH = "assets/weights/bert.pt"
18+
BERT_MODEL_PKL_PATH = "assets/weights/bert.pt" # 微调完成后的权重
1919
BERT_MODEL_PERTRAINED_PATH = "assets/models/bert-base-chinese/"
2020

21-
LLM_OPENAI_SERVER_URL = f"https://dashscope.aliyuncs.com/compatible-mode/v1" # ollama
22-
LLM_OPENAI_API_KEY = "sk-ea2dab7625464c94b794fa19c8ed60e7"
21+
LLM_OPENAI_SERVER_URL = f"https://llm-1u0cr1ya4sew3j07.cn-beijing.maas.aliyuncs.com/compatible-mode/v1" # ollama
22+
LLM_OPENAI_API_KEY = "sk-ws-H.RYPPHRP.8vGC.MEQCIHOnIbG3Xgji7P4S5aEUrJJcNrI9cuQ9m_MZnaHRxpqlAiAdmVloCGH9CvaUwy_6IvibdA-QEzPJxi_5hosJnnLM2g"
2323
LLM_MODEL_NAME = "qwen-turbo"

data_schema.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@ class TextClassifyRequest(BaseModel):
88
"""
99
request_id: Optional[str] = Field(..., description="请求id, 方便调试")
1010
request_text: Union[str, List[str]] = Field(..., description="请求文本、字符串或列表")
11+
# 如Optional[str]表示类型只能是字符串或者空,不能传数字、数组等
1112

12-
13+
# Field(...)中的...代表必填,等价于不设默认值,key必须存在
14+
# 虽然Optional(可以为None),但接口调用时必须带上request_id这个key,只是值可以传null
15+
# Field(None)代表非必填,不传该字段也不会报错
1316
class TextClassifyResponse(BaseModel):
1417
"""
1518
接口返回格式
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# 前端设计文档:车载语音意图识别界面
2+
3+
## 概述
4+
5+
为意图分类 API 服务构建面向真实用户的车载语音助手前端界面。用户输入语音转文字后的文本,选择模型,查看意图识别结果。
6+
7+
## 技术选型
8+
9+
- **原生 HTML/CSS/JS**:零依赖,无需 Node.js 构建工具
10+
- **FastAPI StaticFiles 挂载**:前后端同服务部署,无跨域问题
11+
- **localStorage**:历史记录本地持久化
12+
13+
## 目录结构
14+
15+
```
16+
frontend/
17+
├── index.html # 主页面
18+
├── css/
19+
│ └── style.css # 样式
20+
├── js/
21+
│ ├── api.js # API 调用封装
22+
│ └── app.js # 主逻辑
23+
```
24+
25+
## 页面布局
26+
27+
- 顶部标题栏:标题 + 副标题
28+
- 模型切换区:4 个模型选项卡(正则 / TF-IDF / BERT / 大模型)
29+
- 输入区域:大文本输入框 + 提交按钮
30+
- 结果卡片:分类结果、耗时、原文回显
31+
- 历史记录:本地保存的识别历史列表
32+
33+
## 视觉风格
34+
35+
- 深色主题(模拟车机中控屏)
36+
- 蓝色主色调 + 渐变光效
37+
- 结果卡片淡入动画
38+
- 响应式布局(桌面 + 移动端)
39+
40+
## API 对接
41+
42+
- POST `/v1/text-cls/regex`
43+
- POST `/v1/text-cls/tfidf`
44+
- POST `/v1/text-cls/bert`
45+
- POST `/v1/text-cls/gpt`
46+
47+
请求体:`{request_id, request_text}`
48+
响应体:`{request_id, request_text, classify_result, classify_time, error_msg}`

0 commit comments

Comments
 (0)