- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
59 lines
1.8 KiB
Bash
Executable File
59 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
||
# 测试与课程对话功能 - Dify 集成
|
||
|
||
echo "============================================================"
|
||
echo "🧪 与课程对话功能测试 - Dify 集成"
|
||
echo "============================================================"
|
||
|
||
API_BASE="http://localhost:8000"
|
||
|
||
# 1. 登录获取 token
|
||
echo ""
|
||
echo "🔑 正在登录..."
|
||
LOGIN_RESPONSE=$(curl -s -X POST "${API_BASE}/api/v1/auth/login" \
|
||
-H "Content-Type: application/x-www-form-urlencoded" \
|
||
-d "username=test_user&password=123456")
|
||
|
||
TOKEN=$(echo $LOGIN_RESPONSE | python3 -c "import sys, json; print(json.load(sys.stdin).get('access_token', ''))")
|
||
|
||
if [ -z "$TOKEN" ]; then
|
||
echo "❌ 登录失败"
|
||
echo "响应: $LOGIN_RESPONSE"
|
||
exit 1
|
||
fi
|
||
|
||
echo "✅ 登录成功"
|
||
echo "Token: ${TOKEN:0:20}..."
|
||
|
||
# 2. 测试首次对话
|
||
echo ""
|
||
echo "============================================================"
|
||
echo "测试场景 1: 首次对话(创建新会话)"
|
||
echo "============================================================"
|
||
echo ""
|
||
echo "💬 测试与课程 1 对话"
|
||
echo "问题: 这门课程讲什么?"
|
||
echo ""
|
||
echo "📡 SSE 事件流:"
|
||
echo "------------------------------------------------------------"
|
||
|
||
curl -N -X POST "${API_BASE}/api/v1/course/chat" \
|
||
-H "Authorization: Bearer ${TOKEN}" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"course_id": 1,
|
||
"query": "这门课程讲什么?"
|
||
}'
|
||
|
||
echo ""
|
||
echo "------------------------------------------------------------"
|
||
echo ""
|
||
echo "✅ 测试完成!"
|
||
echo ""
|
||
echo "如需测试续接对话,请复制上面输出的 conversation_id,然后运行:"
|
||
echo " curl -N -X POST '${API_BASE}/api/v1/course/chat' \\"
|
||
echo " -H 'Authorization: Bearer ${TOKEN}' \\"
|
||
echo " -H 'Content-Type: application/json' \\"
|
||
echo " -d '{\"course_id\": 1, \"query\": \"能详细说说吗?\", \"conversation_id\": \"你的conversation_id\"}'"
|
||
|