ไธไธชๅบไบ ้ฟ้ไบ้ไนๅ้ฎ(Qwen) + Agentๆถๆ + RAG็ฅ่ฏๅบ + ๅ้ๆฐๆฎๅบ ็ๆบ่ฝๆ ๆๆฏๆ่ๅคฉๆบๅจไบบ๏ผๅ ทๆๆ ๆ่ฏๅซใๅ ฑๆ ๅๅบใไธปๅจๆๅกใ้ฟๆ่ฎฐๅฟๅๆฐๆฎๅๆ่ฝๅใ
ๅ่้กน็ฎ: emotional_chat
๐ ๆดๆฐ่ฏดๆ v3.0.0:
- โ ไป OpenAI GPT ่ฟ็งป่ณ้ฟ้ไบ้ไนๅ้ฎ(Qwen)
- โ ้ๆ Agent ๆบ่ฝๆ ธๅฟ๏ผไป่ขซๅจๅๅบๅ็บงๅฐไธปๅจๆๅก๏ผ
- โ ้ๆ RAG ็ฅ่ฏๅบ็ณป็ป๏ผไธไธๅฟ็ๅฅๅบท็ฅ่ฏๅขๅผบ๏ผ
- โ ๅๅฑๆๅกๆถๆ้ๆ๏ผๆดๅฅฝ็ๅฏ็ปดๆคๆงๅๆฉๅฑๆง๏ผ
- โ Docker ๅฎนๅจๅๆฏๆ๏ผไธ้ฎ้จ็ฝฒ๏ผ
- ๅ่ฝ็น็น
- ๅฟซ้ๅผๅง
- ็ณป็ปๆถๆ
- ๆๆฏๆ
- ้กน็ฎ็ปๆ
- APIๆฅๅฃๆๆกฃ
- ๆ ธๅฟๅ่ฝ
- ็้ข้ข่ง
- ็ไบง้จ็ฝฒ
- Makefileๅฝไปค
- ็ธๅ ณๆๆกฃ
- ็ๆฌๅๅฒ
- ่ดก็ฎๆๅ
- ๐ญ ๆ ๆ่ฏๅซ: ๆบ่ฝๅๆ็จๆทๆ ๆ็ถๆ๏ผๅผๅฟใ้พ่ฟใ็ฆ่ใๆคๆ็ญ๏ผ
- ๐ฏ ๆๅพ่ฏๅซ: โ ๆททๅๅผๆๅพ่ฏๅซ็ณป็ป๏ผๅ็กฎ็่งฃ็จๆทๆๅพ๏ผ6ๅคง็ฑปๅ๏ผ
- ๐ ๅ ฑๆ ๅๅบ: ๆ นๆฎๆ ๆ็ถๆๅๆๅพ็ๆๆธฉๆใ็่งฃ็ๅๅบ
- ๐ง ้ฟๆ่ฎฐๅฟ: โ Chroma ๅ้ๆฐๆฎๅบ๏ผๆฏๆ่ทจไผ่ฏ่ฏญไนๆฃ็ดข
- ๐ RAG็ฅ่ฏๅบ: โ ้ๆไธไธๅฟ็ๅฅๅบท็ฅ่ฏๅบ๏ผๆไพ็งๅญฆไพๆฎ็ๅปบ่ฎฎ
- ๐ค Agentๆบ่ฝๆ ธๅฟ: โ ไป่ขซๅจๅๅบๅ็บงๅฐไธปๅจๆๅก๏ผๆบ่ฝไปปๅก่งๅๅๅทฅๅ ท่ฐ็จ
- ๐๏ธ ๅคๆจกๆไบคไบ: ๐ ๆฏๆ่ฏญ้ณ่ฏๅซใ่ฏญ้ณๅๆใๅพๅ็่งฃ๏ผ่ๅๆๆฌ/่ฏญ้ณ/ๅพๅๆ ๆ
- ๐๏ธ ๆฐๆฎๆไน ๅ: MySQL + Redis ๅคๅฑๅญๅจๆถๆ
- ๐ ๆ ๆ่ถๅฟๅๆ: ๅๆ็จๆทๆ ๆๅๅ่ถๅฟๅๆจกๅผ
- ๐ ไธไธๆ็่งฃ: ๅบไบๅฏน่ฏๅๅฒๅ็จๆท็ปๅๆไพ่ฟ่ดฏ็ๅๅบ
- ๐จ ๅฑๆบๆฃๆต: ่ชๅจ่ฏๅซๅฑๆบๆ ๅต๏ผๆไพไธไธๆฑๅฉ่ตๆบ
- ๐ ้ซๆง่ฝๆถๆ: FastAPI + LangChain + ๅๅฑๆๅกๆถๆ
- ๐จ ็ฐไปฃๅ็้ข: React 18 + Styled Components + ๆๅญๆบๆๆ
- โจ๏ธ ๆๅญๆบๆๆ: ๆบ่ฝๆๅญๆบๅจ็ป๏ผๆ นๆฎๆ ็ปช่ฐๆด้ๅบฆๅๅ ๆ ้ข่ฒ
- ๐๏ธ ๅคๆจกๆๅค็: ๐ Whisper่ฏญ้ณ่ฏๅซ + gTTS่ฏญ้ณๅๆ + DeepFaceไบบ่ธๆ ็ปช่ฏๅซ
- ๐ณ ๅฎนๅจๅ้จ็ฝฒ: Docker Compose ไธ้ฎ้จ็ฝฒ
- ๐ ็ๆงไฝ็ณป: Prometheus + Grafana ๅฎๆด็ๆง
- ๐ ๅฎๅ จ่ฟๆปค: ่ชๅจๆฃๆต้ซ้ฃ้ฉ่ฏๆฑๅนถๆไพไธไธๆฑๅฉไฟกๆฏ
- ๐จ๐ณ ไธญๆไผๅ: ไฝฟ็จ้ไนๅ้ฎๆจกๅ๏ผๅฏนไธญๆ็่งฃๅ่กจ่พพๆดๅ ่ช็ถ
- ๐ ๆฐๆฎๅบ่ฟ็งป: Alembic ็ฎก็ๆฐๆฎๅบ็ๆฌ
- ๐ค ๆททๅๆถๆ: ่งๅๅผๆ + ๆบๅจๅญฆไน ๅ็ฑปๅจๅ้ไฟ้
- ๅ่ถ็ไธญๆ่ฝๅ: ้ๅฏนไธญๆๅบๆฏๆทฑๅบฆไผๅ๏ผ็่งฃๅ่กจ่พพๆด่ช็ถ
- ๆ ๆๅ ฑๆ ๅบ่ฒ: ๅจๅฟ็ๅฅๅบทๅบๆฏ่กจ็ฐไผๅผ๏ผๅๅคๆธฉๆ็ป่ ป
- ็จณๅฎๅฏ้ : ้ฟ้ไบๅบ็ก่ฎพๆฝไฟ้๏ผๆๅก็จณๅฎๆง้ซ
- ๆๆฌไผๅ: ็ธๆฏๅฝๅคๆจกๅ๏ผๆงไปทๆฏๆด้ซ
็ถๆ: โ ๅทฒๅฎๆ้ๆ
ไป"่ขซๅจๅๅบ"ๅ็บงๅฐ"ไธปๅจๆๅก"็ๆบ่ฝๅฏน่ฏ็ณป็ปใ
ๆ ธๅฟ็ปไปถ:
- ๐ง Planner (่งๅๅจ): ๆบ่ฝไปปๅกๅ่งฃๅ็ญ็ฅ้ๆฉ
- ๐ ๏ธ Tool Caller (ๅทฅๅ ท่ฐ็จๅจ): 10+ ๅ ็ฝฎๅทฅๅ ท่ชๅจ่ฐ็จ
- ๐พ Memory Hub (่ฎฐๅฟไธญๆข): ้ฟ็ญๆ่ฎฐๅฟ็ฎก็ๅ็จๆท็ปๅ
- ๐ Reflector (ๅๆๅจ): ไธปๅจๅ่ฎฟๅ็ญ็ฅไผๅ
- โ๏ธ Agent Core (ๆ ธๅฟๆงๅถๅจ): ็ป็ญนๅ่ฐๆๆ็ปไปถ
ๅทฅไฝๅ็:
็จๆท่พๅ
ฅ โ Agent Core
โ
โโโโโโโโดโโโโโโโ
โ Planner โ ๅๆ็ฎๆ ใๅ่งฃไปปๅก
โโโโโโโโฌโโโโโโโ
โ
โโโโโโโโดโโโโโโโ
โ Memory Hub โ ๆฃ็ดข่ฎฐๅฟใๆๅปบ็ปๅ
โโโโโโโโฌโโโโโโโ
โ
โโโโโโโโดโโโโโโโ
โ Tool Caller โ ่ฐ็จๅทฅๅ
ทใๆง่กไปปๅก
โโโโโโโโฌโโโโโโโ
โ
โโโโโโโโดโโโโโโโ
โ Reflector โ ่ฏไผฐๆๆใ่งๅๅ่ฎฟ
โโโโโโโโฌโโโโโโโ
โ
ๆบ่ฝๅๅค็ๆ
่ฏฆ็ปๆๆกฃ: ๆฅ็ AGENT_README.md
็ถๆ: โ ๅทฒๅฎๆ้ๆ
ไธบAIๅๅคๆทปๅ ไบๆบ่ฝๆๅญๆบๆๆ๏ผ่ฎฉๅฏน่ฏๆดๅ ็ๅจๆ่ถฃใ
ๆ ธๅฟ็นๆง:
- ๐ญ ๆ ็ปชๅๆๅญ: ๆ นๆฎAIๆ ็ปช่ฐๆดๆๅญ้ๅบฆๅๅ ๆ ้ข่ฒ
- โก ๆบ่ฝ้ๅบฆ: ๆ ็น็ฌฆๅทๅ้กฟใไธญๆๅญ็ฌฆไผๅใ็ฉบๆ ผๅฟซ้้่ฟ
- ๐ฎ ไบคไบๆงๅถ: ็นๅปๆๅ/ๆขๅคใๆๅๆ็คบๅจ
- ๐จ ่ง่งๅขๅผบ: ้ช็ๅ ๆ ใๆ ็ปช่ฒๅฝฉใๅจ็ปๆๆ
ๆ ็ปชๅ้ ็ฝฎ:
๐ข ๆฒไผคๆ
็ปช: 40ms้ๅบฆ + ่่ฒๅ
ๆ (#74b9ff)
๐ ๆคๆๆ
็ปช: 20ms้ๅบฆ + ็บข่ฒๅ
ๆ (#ff7675)
๐ ๅผๅฟๆ
็ปช: 25ms้ๅบฆ + ็ปฟ่ฒๅ
ๆ (#00b894)
๐ ไธญๆงๆ
็ปช: 30ms้ๅบฆ + ้ป่ฒๅ
ๆ (#333)
ๆๆฏๅฎ็ฐ:
- React็ปไปถๅ่ฎพ่ฎก
- ๅจๆ้ๅบฆ่ฎก็ฎ็ฎๆณ
- ๆ ็ปช็ถๆๆ ๅฐ
- ็จๆทไบคไบๆงๅถ
็ถๆ: โ ๅทฒๅฎๆ้ๆ
้็จ"่งๅ+ๆจกๅ"็ๆททๅๆถๆ๏ผๅ็กฎ่ฏๅซ็จๆทๆๅพ๏ผไธบๅฏน่ฏ็ๆๆไพๅ ณ้ฎไพๆฎใ
ๆ ธๅฟ็นๆง:
- ๐ ๆททๅ่ฏๅซ: ่งๅๅผๆ๏ผๅฟซ้๏ผ+ MLๅ็ฑปๅจ๏ผๅ็กฎ๏ผ
- ๐จ ๅฑๆบไผๅ : ไผๅ ๆฃๆตๅฑๆบๆ ๅต๏ผ็กฎไฟๅฎๅ จ็ฌฌไธ
- ๐ก ๆบ่ฝPrompt: ๆ นๆฎๆๅพ่ชๅจๆๅปบ้ๅฏนๆง็ๅๅบ็ญ็ฅ
- โก ้ซๆๅค็: ๅ ณ้ฎ่ฏๅฟซ้ๅน้ ๏ผๆฏซ็ง็บงๅๅบ
6ๅคงๆๅพ็ฑปๅ:
| ๆๅพ | ่ฏดๆ | ็คบไพ |
|---|---|---|
| emotion | ๆ ๆ่กจ่พพ | "ๆๅฅฝ้พ่ฟ"ใ"ไปๅคฉๅฟๆ ไธๅฅฝ" |
| advice | ๅฏปๆฑๅปบ่ฎฎ | "ๆไนๅ๏ผ"ใ"ไฝ ๆไปไนๅปบ่ฎฎ" |
| conversation | ๆฎ้ๅฏน่ฏ | "ไปๅคฉๅคฉๆฐไธ้" |
| function | ๅ่ฝ่ฏทๆฑ | "ๆ้ๆๅ่ฏ" |
| crisis | ๅฑๆบๅนฒ้ข | "ไธๆณๆดปไบ" |
| chat | ้ฒ่ | "ไฝ ๅฅฝ"ใ"ๅจๅ" |
ๆต่ฏๆๅพ่ฏๅซ:
# ่ฟ่กๆต่ฏๅฅไปถ
python3 test_intent_module.py
# ๆต่ฏAPIๆฅๅฃ
curl -X POST http://localhost:8000/intent/analyze \
-H "Content-Type: application/json" \
-d '{"text": "ๆ่ฏฅๆไนๅ๏ผ", "user_id": "test_user"}'่ฏฆ็ปๆๆกฃ: ๆฅ็ docs/ๆๅพ่ฏๅซๆจกๅ่ฏดๆ.md
็ถๆ: โ ๅทฒๅฎๆ้ๆ
้ๆไธไธๅฟ็ๅฅๅบท็ฅ่ฏๅบ๏ผๆไพๆ็งๅญฆไพๆฎ็ๅปบ่ฎฎใ
็นๆง:
- ๐ ็ฅ่ฏๅ ่ฝฝ: ๆฏๆ PDFใๆๆฌ็ญๅค็งๆ ผๅผ
- ๐ ่ฏญไนๆฃ็ดข: ๅบไบๅ้็ธไผผๅบฆๆฃ็ดข็ธๅ ณ็ฅ่ฏ
- ๐ก ๆบ่ฝๅขๅผบ: ่ชๅจๅคๆญไฝๆถไฝฟ็จ็ฅ่ฏๅบ
- ๐ฏ ็ฒพๅๅน้ : 6ๅคง็ฑปๅฟ็ๅฅๅบท็ฅ่ฏๅ็ฑป
็ฅ่ฏ็ฑปๅซ:
- ่ฎค็ฅ่กไธบ็ๆณ๏ผCBT๏ผ
- ๆญฃๅฟตๅๅๆๆฏ๏ผMBSR๏ผ
- ็งฏๆๅฟ็ๅญฆ
- ็ฆ่ๅบๅฏน็ญ็ฅ
- ็ก็ ๆนๅๆนๆณ
- ๆ ็ปช่ฐ่ๆๅทง
ๅๅงๅ็ฅ่ฏๅบ:
# ๅๅงๅๅ
็ฝฎ็ฅ่ฏ
make rag-init
# ๆ็ดๆฅ่ฟ่ก
python init_rag_knowledge.py่ฏฆ็ปๆๆกฃ: ๆฅ็ docs/RAGๅฎๆฝๆญฅ้ชค.md
ๅคๅฑ่ฎฐๅฟๆถๆ:
็ญๆ่ฎฐๅฟ (MySQL) + ้ฟๆ่ฎฐๅฟ (Chromaๅ้ๆฐๆฎๅบ)
ๅฝๅไผ่ฏๅฏน่ฏ ่ทจไผ่ฏ่ฏญไน็ธไผผๅฏน่ฏ
โ โ
ไธไธๆ่ๅ
โ
็จๆท็ปๅ
โ
ๆบ่ฝๅๅค็ๆ
็นๆง:
- ๐ ่ฏญไนๆฃ็ดข: ๅบไบ่ฏญไน็ธไผผๅบฆๆฃ็ดขๅๅฒๅฏน่ฏ
- ๐ ่ทจไผ่ฏ่ฎฐๅฟ: ไธ้ไบๅฝๅไผ่ฏ๏ผๅฏ่ฎฟ้ฎๆๆๅๅฒๅฏน่ฏ
- ๐ค ็จๆท็ปๅ: ่ชๅจๆๅปบ็จๆทๆงๆ ผ็นๅพๅๅๅฅฝ
- ๐ ๆ ๆๆจกๅผๅญฆไน : ๅญฆไน ็จๆท็ๆ ๆ่กจ่พพๆจกๅผ
๐ก ๆ็คบ: ๅฎๆด่ฏฆ็ป็ๅฎ่ฃ ๆๅ่ฏทๆฅ็ ๅฟซ้ๅผๅง่ฏฆ็ปๆๅ
๐ MacBook ็จๆท: ๆฅ็ไธ้จ็ MacBook ้ ็ฝฎๆๅ ๆ่ฟ่กๅฟซ้้ ็ฝฎ่ๆฌ
./setup_macbook.sh
# 1. ๅฎ่ฃ
ไพ่ต
make install
# 2. ๅๅงๅๆฐๆฎๅบ
make db-upgrade
# 3. ๅฏๅจๆๅก
make run # ๅ็ซฏๆๅก
cd frontend && npm start # ๅ็ซฏๆๅก๏ผๆฐ็ป็ซฏ๏ผ- ๐ ๅ็ซฏ็้ข: http://localhost:3000
- ๐ ๅ็ซฏAPI: http://localhost:8000
- ๐ APIๆๆกฃ: http://localhost:8000/docs
# ้
็ฝฎ็ฏๅขๅ้
cp config.env.example config.env
nano config.env
# ๅฏๅจๆๆๆๅก
docker-compose up -dๅฏนไบ macOS ็จๆท๏ผๆไปฌๆไพไบไธ้จ็้ ็ฝฎๆๅๅ่ๆฌ๏ผ
ๆนๅผไธ๏ผไฝฟ็จ่ชๅจ้ ็ฝฎ่ๆฌ๏ผๆจ่๏ผ
# ่ฟ่ก่ชๅจ้
็ฝฎ่ๆฌ
./setup_macbook.shๆนๅผไบ๏ผๆๅจ้ ็ฝฎ
# 1. ๅฎ่ฃ
Homebrew๏ผๅฆๆๆชๅฎ่ฃ
๏ผ
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2. ๅฎ่ฃ
็ณป็ปไพ่ต
brew install python@3.10 mysql node cmake
# 3. ๅๅปบ่ๆ็ฏๅข
python3 -m venv venv
source venv/bin/activate
# 4. ๅฎ่ฃ
Python ไพ่ต
pip install -r requirements.txt
# 5. ้
็ฝฎ็ฏๅขๅ้
cp config.env.example config.env
nano config.env
# ๅ็ปญๆญฅ้ชคไธ Linux ็ธๅ๐ ่ฏฆ็ปๆๆกฃ: ๆฅ็ MacBook ้ ็ฝฎๆๅ ่ทๅๅฎๆด็ macOS ๅฎ่ฃ ่ฏดๆใๅธธ่ง้ฎ้ข่งฃๅณๆนๆกๅๆง่ฝไผๅๅปบ่ฎฎใ
# CentOS/RHEL/Alibaba Cloud Linux
sudo yum install -y cmake gcc gcc-c++ make
# Ubuntu/Debian
sudo apt update && sudo apt install -y cmake gcc g++ make build-essentialcd /home/workSpace/emotional_chat
# ๆฃๆฅPython็ๆฌ
python3 --version
# ๅฎ่ฃ
ไพ่ต๏ผPython 3.10+๏ผ
pip3 install --user -r requirements.txt
# ๆ python3.10 -m pip install --user -r requirements.txt
cd frontend && npm install && cd ..cp config.env.example config.env
nano config.env # ้
็ฝฎAPIๅฏ้ฅๅๆฐๆฎๅบไฟกๆฏๅฟ ้้ ็ฝฎ้กน:
LLM_API_KEYๆDASHSCOPE_API_KEY: ้ฟ้ไบ้ไนๅ้ฎAPIๅฏ้ฅMYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD: MySQLๆฐๆฎๅบ้ ็ฝฎ
๐ ่ทๅAPI Key: ่ฎฟ้ฎ ้ฟ้ไบ DashScope ๅๅปบAPI Key
# Ubuntu/Debian
sudo apt install mysql-server mysql-client
sudo systemctl start mysql
# CentOS/RHEL
sudo yum install mysql-server mysql
sudo systemctl start mysql# ๅๅปบๆฐๆฎๅบ
mysql -u root -p -e "CREATE DATABASE emotional_chat CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# ่ฟ่กๆฐๆฎๅบ่ฟ็งป
make db-upgrade
# ๅๅงๅRAG็ฅ่ฏๅบ๏ผๆจ่๏ผ
make rag-initๅ็ซฏๆๅก:
python3 run_backend.py
# ๆไฝฟ็จ uvicorn๏ผไป้กน็ฎๆ น็ฎๅฝ๏ผ
python3 -m uvicorn backend.app:app --host 0.0.0.0 --port 8000 --reloadๅ็ซฏๆๅก๏ผๆฐ็ป็ซฏ๏ผ:
cd frontend
npm start# ๅฅๅบทๆฃๆฅ
curl http://localhost:8000/health
# ๆต่ฏ่ๅคฉๆฅๅฃ
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{"message": "ไฝ ๅฅฝ", "user_id": "test_user"}'ๅธธ่ง้ฎ้ข:
- ็ซฏๅฃๅฒ็ช:
netstat -tulpn | grep :8000ๆฅ็ๅ ็จ - ไพ่ตๅฎ่ฃ ๅคฑ่ดฅ: ็กฎไฟๅทฒๅฎ่ฃ CMake ๅ็ผ่ฏๅทฅๅ ท
- ๆฐๆฎๅบ่ฟๆฅๅคฑ่ดฅ: ๆฃๆฅ
config.envไธญ็ๆฐๆฎๅบ้ ็ฝฎ
๐ ๆดๅคๅธฎๅฉ: ๆฅ็ ๅฎๆดๅฎ่ฃ ๆๅ ๆๆไบค Issue
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๅ็ซฏๅฑ (Frontend) โ
โ React 18 + Styled Components โ
โ ็ซฏๅฃ: 3000 โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTP/WebSocket
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ่ทฏ็ฑๅฑ (Router) โ
โ Chat | Memory | Feedback | Evaluation | RAG โ
โ Agent Router โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆๅกๅฑ (Service) โ
โ ChatService | MemoryService | ContextService โ
โ AgentService (ๅฏ้) โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆ ธๅฟๅฑ (Core/Module) โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโ โ
โ โ Agent Core โ โ RAG Module โ โ LLM Moduleโ โ
โ โ โข Planner โ โ โข KB Manager โ โโข Qwen API โ โ
โ โ โข Tool Callerโ โ โข Retriever โ โโข LangChainโ โ
โ โ โข Memory Hub โ โ โข Embedder โ โโโโโโโโโโโโโ โ
โ โ โข Reflector โ โโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆฐๆฎๅฑ (Data) โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ MySQL โ โ ChromaDB โ โ Redis โ โ
โ โๅ
ณ็ณปๆฐๆฎๅบ โ โๅ้ๆฐๆฎๅบโ โ ็ผๅญ โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
่ด่ดฃAPIๆฅๅฃๅฎไนๅ่ฏทๆฑๅๅ
backend/routers/
โโโ chat.py - ่ๅคฉๆฅๅฃ
โโโ memory.py - ่ฎฐๅฟ็ฎก็ๆฅๅฃ
โโโ feedback.py - ็จๆทๅ้ฆๆฅๅฃ
โโโ evaluation.py - ่ฏไผฐ็ณป็ปๆฅๅฃ
โโโ agent.py - Agentๆบ่ฝๆฅๅฃ
ไธๅก้ป่พๅฐ่ฃ ๅ็ผๆ
backend/services/
โโโ chat_service.py - ่ๅคฉๆๅก
โโโ memory_service.py - ่ฎฐๅฟๆๅก
โโโ context_service.py - ไธไธๆๆๅก
โโโ agent_service.py - Agentๆๅก๏ผๅฏ้๏ผ
ๆ ธๅฟๅ่ฝๆจกๅ
backend/modules/
โโโ agent/ - Agentๆบ่ฝๆ ธๅฟ
โ โโโ core/ - Agent Core, Planner, Tool Caller็ญ
โ โโโ services/ - Agentๆๅกๅฎ็ฐ
โ โโโ routers/ - Agent่ทฏ็ฑ
โโโ rag/ - RAG็ฅ่ฏๅบ็ณป็ป
โ โโโ core/ - ็ฅ่ฏๅบ็ฎก็ใๆฃ็ดข
โ โโโ services/ - RAGๆๅก
โ โโโ routers/ - RAG่ทฏ็ฑ
โโโ llm/ - LLMๆจกๅๅฐ่ฃ
โโโ core/ - LLMๆ ธๅฟๅ่ฝ
โโโ providers/ - LLMๆไพๅๅฐ่ฃ
๏ผOpenAIใAnthropic็ญ๏ผ
โโโ services/ - LLMๆๅก
ๆฐๆฎๅญๅจๅ็ฎก็
- MySQL: ็จๆทๆฐๆฎใๅฏน่ฏๅๅฒใๆ ๆ่ฎฐๅฝ
- ChromaDB: ๅ้ๅญๅจใ่ฏญไนๆฃ็ดข
- Redis: ็ผๅญใไผ่ฏ็ถๆ๏ผ็ไบง็ฏๅข๏ผ
๐ ่ฏฆ็ปๆถๆๆๆกฃ: ๆฅ็็ธๅ ณๆจกๅๆๆกฃ
- Python 3.10+: ไธป่ฆๅผๅ่ฏญ่จ
- ไฝฟ็จ
requirements.txtๅฎ่ฃ ไพ่ต
- ไฝฟ็จ
- FastAPI 0.83+: ็ฐไปฃๅ็Webๆกๆถ
- LangChain 0.1+: ๅฏน่ฏๆต็ฎก็ๅ่ฎฐๅฟ็ฎก็
- Pydantic: ๆฐๆฎ้ช่ฏๅๅบๅๅ
- ้ฟ้ไบ้ไนๅ้ฎ (Qwen Plus): ๅคง่ฏญ่จๆจกๅ
- LangChain-OpenAI: LLM้ๆ
- Sentence Transformers: ๆๆฌๅตๅ ฅๆจกๅ
- MySQL 8.0: ๅ ณ็ณปๅๆฐๆฎๅบ๏ผ็จๆทๆฐๆฎใๅฏน่ฏๅๅฒ๏ผ
- ChromaDB 0.4+: ๅ้ๆฐๆฎๅบ๏ผ่ฏญไนๆฃ็ดขใ้ฟๆ่ฎฐๅฟ๏ผ
- Redis 7: ็ผๅญๅไผ่ฏ็ฎก็๏ผ็ไบง็ฏๅข๏ผ
- SQLAlchemy 1.4+: ORMๆกๆถ
- Alembic: ๆฐๆฎๅบ่ฟ็งปๅทฅๅ ท
- PyPDF 3.17+: PDFๆๆกฃ่งฃๆ
- python-multipart: ๆไปถไธไผ ๆฏๆ
- Docker & Docker Compose: ๅฎนๅจๅ้จ็ฝฒ
- Prometheus: ๆๆ ็ๆง
- Grafana: ๆฐๆฎๅฏ่งๅ
- Elasticsearch & Kibana: ๆฅๅฟ่ๅๅๅๆ
- Nginx: ๅๅไปฃ็
- React 18: UIๆกๆถ
- Styled Components: CSS-in-JSๆ ทๅผๆนๆก
- Framer Motion: ๅจ็ปๆๆๅบ
- Axios: HTTPๅฎขๆท็ซฏ
- Makefile: ๅฝไปค่กๅทฅๅ ท้ๆ
- Python dotenv: ็ฏๅขๅ้็ฎก็
- Logging: ็ปๆๅๆฅๅฟ็ณป็ป
ๅฎ่ฃ CMake ๅ็ผ่ฏๅทฅๅ ท
ๆไบ Python ๅ
๏ผๅฆ dlibใopencv-python๏ผ้่ฆไปๆบ็ ็ผ่ฏ๏ผๅ ๆญค้่ฆๅฎ่ฃ
็ผ่ฏๅทฅๅ
ท๏ผ
# CentOS/RHEL/Alibaba Cloud Linux
sudo yum install -y cmake gcc gcc-c++ make
# Ubuntu/Debian
sudo apt update
sudo apt install -y cmake gcc g++ make build-essential
# ้ช่ฏๅฎ่ฃ
cmake --version
gcc --versionๆณจๆ๏ผ
dlib๏ผface-recognition ็ไพ่ต๏ผ้่ฆ CMake ็ผ่ฏ๏ผ้ข่ฎก็ผ่ฏๆถ้ด 10-30 ๅ้opencv-pythonไน้่ฆ็ผ่ฏ๏ผ้ข่ฎก็ผ่ฏๆถ้ด 5-15 ๅ้- ๅฆๆไธ้่ฆไบบ่ธ่ฏๅซๅ่ฝ๏ผๅฏไปฅๆณจ้ๆ
requirements.txtไธญ็face-recognition>=1.3.0
# ่ฟๅ
ฅ้กน็ฎ็ฎๅฝ
cd /home/emotional_chat
# ๆฃๆฅPython็ๆฌ
python3 --version
# ๅฎ่ฃ
ไพ่ต๏ผPython 3.10+๏ผ
pip3 install --user -r requirements.txt
# ๆณจๆ๏ผๅฆๆ้ๅฐ dlib ็ผ่ฏๅคฑ่ดฅ๏ผ่ฏท็กฎไฟๅทฒๅฎ่ฃ
CMake
# ๅฆๆ้ๅฐ็ๆฌๅฒ็ช๏ผ่ฏทๅ่ๅฏนๅบ requirements ๆไปถไธญ็ๆณจ้่ฏดๆ
# ๅฎ่ฃ
ๅ็ซฏไพ่ต
cd frontend
npm install
cd ..# ๅคๅถ็ฏๅขๅ้ๆจกๆฟ
cp config.env.example config.env
# ็ผ่พ้
็ฝฎๆไปถ
nano config.env้ ็ฝฎๅ ๅฎน๏ผ
# API้
็ฝฎ - ไฝฟ็จ้ฟ้ไบ้ไนๅ้ฎ(Qwen)
LLM_API_KEY=your_qwen_api_key_here
# ๆ่
ไฝฟ็จ DASHSCOPE_API_KEY (ๅ
ผๅฎนๆง็ๆฌ)
# DASHSCOPE_API_KEY=your_qwen_api_key_here
LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# MySQLๆฐๆฎๅบ้
็ฝฎ
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=emotional_chat
# ๆจกๅ้
็ฝฎ - ไฝฟ็จ้ไนๅ้ฎ
DEFAULT_MODEL=qwen-plus
TEMPERATURE=0.7
MAX_TOKENS=1000
# ๆๅกๅจ้
็ฝฎ
HOST=0.0.0.0
PORT=8000
DEBUG=true่ทๅ้ไนๅ้ฎ API Key๏ผ
- ่ฎฟ้ฎ้ฟ้ไบ DashScope ๅนณๅฐ๏ผhttps://dashscope.console.aliyun.com/
- ็ปๅฝ้ฟ้ไบ่ดฆๅท
- ๅๅปบ API Key
- ๅฐ API Key ๅกซๅ
ฅ
config.envๆไปถ
# Ubuntu/Debian
sudo apt update
sudo apt install mysql-server mysql-client
# CentOS/RHEL
sudo yum install mysql-server mysql
# ๅฏๅจMySQLๆๅก
sudo systemctl start mysql
sudo systemctl enable mysql
# ้
็ฝฎMySQL๏ผๅฏ้๏ผ
sudo mysql_secure_installation# ็ปๅฝMySQL
mysql -u root -p
# ๅๅปบๆฐๆฎๅบ
CREATE DATABASE emotional_chat CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# ้ๅบMySQL
exit;# ๆนๆณ1๏ผไฝฟ็จMakefile๏ผๆจ่๏ผ
make db-init # ๅๅงๅๆฐๆฎๅบ
make db-upgrade # ๅ็บงๅฐๆๆฐ็ๆฌ
# ๆนๆณ2๏ผไฝฟ็จAlembicๅฝไปค
alembic upgrade head # ๅ็บงๅฐๆๆฐ็ๆฌ
# ๆฅ็ๆฐๆฎๅบ็ถๆ
make db-current # ๆฅ็ๅฝๅ็ๆฌ
make db-history # ๆฅ็่ฟ็งปๅๅฒ# ไฝฟ็จMakefile
make rag-init
# ๆ็ดๆฅ่ฟ่ก
python init_rag_knowledge.py# ๆนๆณ1๏ผไฝฟ็จๅฏๅจ่ๆฌ๏ผๆจ่๏ผ้ฟๅ
ๆไปถ็่ง้ๅถ้ฎ้ข๏ผ
python3 run_backend.py
# ๆนๆณ2๏ผ็ดๆฅๅจbackend็ฎๅฝๅฏๅจ
cd backend
python3 -m uvicorn backend.app:app --host 0.0.0.0 --port 8000 --reloadๆณจๆ๏ผๅฏๅจ่ๆฌไผ่ชๅจๅๆขๅฐ backend ็ฎๅฝ่ฟ่ก๏ผ้ฟๅ watchfiles ๆซๆ frontend/node_modules ๅฏผ่ด็ๆไปถ็่ง้ๅถ้ฎ้ขใ
ๅ็ซฏๆๅกๅฐๅจ http://localhost:8000 ๅฏๅจ๏ผAPIๆๆกฃๅฏๅจ http://localhost:8000/docs ๆฅ็ใ
# ๆฐๅผไธไธช็ป็ซฏ็ชๅฃ
cd /home/emotional_chat/frontend
# ๅฏๅจๅ็ซฏๆๅก๏ผ็ซฏๅฃ3000๏ผ
npm startๅ็ซฏๅบ็จๅฐๅจ http://localhost:3000 ๅฏๅจใ
ๆฃๆฅๅ็ซฏๆๅก
# ๅฅๅบทๆฃๆฅ
curl http://localhost:8000/health
# ้ขๆๅๅบๅ
ๅซ: version: "3.0.0", agent_enabled: true
# ๆฅ็็ณป็ปไฟกๆฏ๏ผไบ่งฃๆถๆ๏ผ
curl http://localhost:8000/system/info
# ๆฅ็APIๆ น่ทฏๅพ
curl http://localhost:8000/
# ้ขๆๅๅบๅ
ๅซ: Agentๆบ่ฝๆ ธๅฟใRAG็ฅ่ฏๅบ็ญๅ่ฝๅ่กจ
# ๆต่ฏๆฎ้่ๅคฉๆฅๅฃ
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{"message": "ไฝ ๅฅฝ๏ผๆไปๅคฉๅฟๆ
ๅพๅฅฝ๏ผ", "user_id": "test_user"}'
# ๆต่ฏAgentๆฅๅฃ๏ผๅฆๆๅฏ็จ๏ผ
curl -X POST http://localhost:8000/agent/chat \
-H "Content-Type: application/json" \
-d '{"message": "ๆๆ่ฟ็กไธๅฅฝ๏ผๆไนๅ๏ผ", "user_id": "test_user"}'
# ๆฅ็APIๆๆกฃ
open http://localhost:8000/docs # ๆๅจๆต่งๅจไธญ่ฎฟ้ฎๆฃๆฅๅ็ซฏๆๅก
- ๆๅผๆต่งๅจ่ฎฟ้ฎ
http://localhost:3000 - ๅบ่ฏฅ่ฝ็ๅฐ็ฐไปฃๅ็่ๅคฉ็้ข
ๆฃๆฅๆฐๆฎๅบ่ฟๆฅ
# ไฝฟ็จMakefile
make db-check
# ๆฅ็่กจ็ปๆ
mysql -u root -p emotional_chat -e "SHOW TABLES;"ๆฃๆฅRAG็ฅ่ฏๅบ
# ๆต่ฏRAG็ณป็ป
make rag-test
# ๆๆฅ็็ฅ่ฏๅบ็ถๆ
curl http://localhost:8000/rag/status- ๆๅผๆต่งๅจ่ฎฟ้ฎ
http://localhost:3000 - ๅจ่พๅ ฅๆกไธญ่พๅ ฅไฝ ็ๆณๆณๅๆๅ
- ๆบๅจไบบไผๅๆไฝ ็ๆ ๆๅนถ็ปๅบๅ ฑๆ ๅๅบ
- ๆฏๆๅค่ฝฎๅฏน่ฏ๏ผๆบๅจไบบไผ่ฎฐไฝๅฏน่ฏๅๅฒ
- ๆฅ็APIๆๆกฃ๏ผhttp://localhost:8000/docs
ๅ็ซฏๅฏๅจๅคฑ่ดฅ
# ๆฃๆฅPython็ๆฌ
python3 --version
# ๆฃๆฅไพ่ตๅฎ่ฃ
pip3 list | grep fastapi
# ๆๅจๅฎ่ฃ
ไพ่ต๏ผPython 3.10+๏ผ
python3 --version # ๅ
ๆฃๆฅ็ๆฌ
pip3 install --user -r requirements.txt
# ๆฃๆฅMySQL่ฟๆฅ
python3 setup_database.pyๅ็ซฏๅฏๅจๅคฑ่ดฅ
# ๆฃๆฅNode.js็ๆฌ
node --version
npm --version
# ๆธ
็ๅนถ้ๆฐๅฎ่ฃ
ไพ่ต
cd frontend
rm -rf node_modules package-lock.json
npm install็ซฏๅฃๅฒ็ช
# ๆฃๆฅ็ซฏๅฃๅ ็จ
netstat -tulpn | grep :8000
netstat -tulpn | grep :3000
# ๆๆญปๅ ็จ็ซฏๅฃ็่ฟ็จ
sudo kill -9 <PID># 1. ๅฎ่ฃ
ไพ่ต
make install
# 2. ๅๅงๅๆฐๆฎๅบ
make db-upgrade
# 3. ๅๅงๅRAG็ฅ่ฏๅบ๏ผๅฏ้๏ผ
make rag-init
# 4. ๅฏๅจๅ็ซฏๆๅก
make run# ไธ้ฎๅฏๅจๆๆๆๅก๏ผๅ
ๅซ็ๆงๆ ๏ผ
docker-compose up -d
# ๆฅ็ๆๅก็ถๆ
docker-compose ps็ป็ซฏ1 - ๅฏๅจๅ็ซฏ๏ผ
# ๅจ้กน็ฎๆ น็ฎๅฝ่ฟ่ก๏ผๆจ่๏ผ
python3 run_backend.py
# ๆ่
ไฝฟ็จuvicorn
cd backend
python3 -m uvicorn backend.app:app --host 0.0.0.0 --port 8000 --reload็ป็ซฏ2 - ๅฏๅจๅ็ซฏ๏ผ
cd frontend
npm start- ๐ ๅ็ซฏ็้ข๏ผhttp://localhost:3000
- ๐ ๅ็ซฏAPI๏ผhttp://localhost:8000
- ๐ APIๆๆกฃ๏ผhttp://localhost:8000/docs
- ๐ ็ณป็ปไฟกๆฏ๏ผhttp://localhost:8000/system/info
# ๆต่ฏๅ็ซฏๅฅๅบท็ถๆ
curl http://localhost:8000/health
# ๆฅ็็ณป็ปไฟกๆฏ
curl http://localhost:8000/
# ๆต่ฏๆฎ้่ๅคฉ
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{"message": "ไฝ ๅฅฝ", "user_id": "test_user"}'
# ๆต่ฏAgent่ๅคฉ๏ผๆบ่ฝๆจกๅผ๏ผ
curl -X POST http://localhost:8000/agent/chat \
-H "Content-Type: application/json" \
-d '{"message": "ๆๆ่ฟๅๅๅพๅคง", "user_id": "test_user"}'
# ๆต่ฏRAG็ฅ่ฏๅบ
curl -X POST http://localhost:8000/rag/search \
-H "Content-Type: application/json" \
-d '{"query": "ๅฆไฝๅๅ", "top_k": 3}'make help # ๆฅ็ๆๆๅฏ็จๅฝไปค
make db-check # ๆฃๆฅๆฐๆฎๅบ่ฟๆฅ
make db-current # ๆฅ็ๅฝๅๆฐๆฎๅบ็ๆฌ
make rag-test # ๆต่ฏRAG็ณป็ป
make rag-demo # RAGๆๆๅฏนๆฏๆผ็คบemotional_chat/
โโโ backend/ # ๅ็ซฏไปฃ็ ็ฎๅฝ
โ โโโ __init__.py
โ โโโ app.py # โ
FastAPIๅบ็จๅทฅๅ๏ผไธปๅ
ฅๅฃ๏ผ
โ โโโ main.py # ๆง็ไธป็จๅบ๏ผๅ
ผๅฎนๆง๏ผ
โ โ
โ โโโ routers/ # ่ทฏ็ฑๅฑ - APIๆฅๅฃๅฎไน
โ โ โโโ __init__.py
โ โ โโโ chat.py # ่ๅคฉๆฅๅฃ
โ โ โโโ enhanced_chat.py # ๅขๅผบ็่ๅคฉๆฅๅฃ
โ โ โโโ streaming_chat.py # ๆตๅผ่ๅคฉๆฅๅฃ
โ โ โโโ memory.py # ่ฎฐๅฟ็ฎก็ๆฅๅฃ
โ โ โโโ feedback.py # ๅ้ฆๆฅๅฃ
โ โ โโโ evaluation.py # ่ฏไผฐๆฅๅฃ
โ โ โโโ agent.py # Agentๆบ่ฝๆฅๅฃ
โ โ โโโ emotion_analysis.py # ๆ
ๆๅๆๆฅๅฃ
โ โ โโโ performance.py # ๆง่ฝ็ๆงๆฅๅฃ
โ โ โโโ personalization.py # ไธชๆงๅ้
็ฝฎๆฅๅฃ
โ โ
โ โโโ services/ # ๆๅกๅฑ - ไธๅก้ป่พ
โ โ โโโ __init__.py
โ โ โโโ chat_service.py # ่ๅคฉๆๅก
โ โ โโโ enhanced_chat_service.py # ๅขๅผบ็่ๅคฉๆๅก
โ โ โโโ optimized_chat_service.py # ไผๅ็่ๅคฉๆๅก
โ โ โโโ memory_service.py # ่ฎฐๅฟๆๅก
โ โ โโโ enhanced_memory_manager.py # ๅขๅผบ็่ฎฐๅฟ็ฎก็
โ โ โโโ context_service.py # ไธไธๆๆๅก
โ โ โโโ enhanced_context_assembler.py # ๅขๅผบ็ไธไธๆ็ป่ฃ
โ โ โโโ agent_service.py # Agentๆๅก
โ โ โโโ personalization_service.py # ไธชๆงๅๆๅก
โ โ โโโ user_profile_builder.py # ็จๆท็ปๅๆๅปบ
โ โ โโโ emotion_trend_analyzer.py # ๆ
ๆ่ถๅฟๅๆ
โ โ โโโ advanced_sentiment_analyzer.py # ้ซ็บงๆ
ๆๅๆ
โ โ โโโ proactive_recall_system.py # ไธปๅจๅ่ฎฟ็ณป็ป
โ โ โโโ performance_optimizer.py # ๆง่ฝไผๅๅจ
โ โ โโโ prompt_composer.py # Prompt็ปๅๅจ
โ โ
โ โโโ modules/ # ๆจกๅๅฑ - ๆ ธๅฟๅ่ฝ
โ โ โโโ agent/ # โ
Agentๆบ่ฝๆ ธๅฟๆจกๅ
โ โ โ โโโ core/ # Agentๆ ธๅฟ็ปไปถ
โ โ โ โโโ services/ # Agentๆๅก
โ โ โ โโโ routers/ # Agent่ทฏ็ฑ
โ โ โ โโโ models/ # Agentๆฐๆฎๆจกๅ
โ โ โ โโโ protocol/ # Agentๅ่ฎฎ
โ โ โ
โ โ โโโ rag/ # โ
RAG็ฅ่ฏๅบ็ณป็ป
โ โ โ โโโ core/ # RAGๆ ธๅฟ
โ โ โ โ โโโ knowledge_base.py # ็ฅ่ฏๅบ็ฎก็
โ โ โ โ โโโ retriever.py # ๆฃ็ดขๅจ
โ โ โ โโโ services/ # RAGๆๅก
โ โ โ โโโ routers/ # RAG่ทฏ็ฑ
โ โ โ โโโ models/ # RAGๆฐๆฎๆจกๅ
โ โ โ
โ โ โโโ llm/ # LLMๆจกๅๅฐ่ฃ
โ โ โ โโโ core/ # LLMๆ ธๅฟ
โ โ โ โโโ providers/ # LLMๆไพๅๅฐ่ฃ
โ โ โ โโโ services/ # LLMๆๅก
โ โ โ โโโ models/ # LLMๆฐๆฎๆจกๅ
โ โ โ
โ โ โโโ intent/ # ๆๅพ่ฏๅซๆจกๅ
โ โ โ โโโ core/ # ๆๅพ่ฏๅซๆ ธๅฟ
โ โ โ โโโ services/ # ๆๅพ่ฏๅซๆๅก
โ โ โ โโโ routers/ # ๆๅพ่ฏๅซ่ทฏ็ฑ
โ โ โ โโโ models/ # ๆๅพ่ฏๅซๆฐๆฎๆจกๅ
โ โ โ
โ โ โโโ multimodal/ # ๅคๆจกๆๅค็ๆจกๅ
โ โ โโโ core/ # ๅคๆจกๆๆ ธๅฟ
โ โ โโโ services/ # ๅคๆจกๆๆๅก
โ โ
โ โโโ agent/ # Agentๆ ธๅฟๅฎ็ฐ๏ผ็ฌ็ซๆจกๅ๏ผ
โ โ โโโ __init__.py
โ โ โโโ agent_core.py # Agentๆ ธๅฟๆงๅถๅจ
โ โ โโโ planner.py # ไปปๅก่งๅๅจ
โ โ โโโ tool_caller.py # ๅทฅๅ
ท่ฐ็จๅจ
โ โ โโโ memory_hub.py # ่ฎฐๅฟไธญๆข
โ โ โโโ reflector.py # ๅๆไผๅๅจ
โ โ โโโ tools/ # Agentๅทฅๅ
ท้
โ โ โ โโโ calendar_api.py # ๆฅๅๅทฅๅ
ท
โ โ โ โโโ scheduler_service.py # ่ฐๅบฆๆๅก
โ โ โ โโโ psychology_db.py # ๅฟ็ๅญฆๆฐๆฎๅบ
โ โ โ โโโ audio_player.py # ้ณ้ขๆญๆพๅจ
โ โ โโโ README.md # Agentๆจกๅๆๆกฃ
โ โ
โ โโโ plugins/ # ๆไปถ็ณป็ป
โ โ โโโ __init__.py
โ โ โโโ base_plugin.py # ๆไปถๅบ็ฑป
โ โ โโโ plugin_manager.py # ๆไปถ็ฎก็ๅจ
โ โ โโโ weather_plugin.py # ๅคฉๆฐๆไปถ
โ โ โโโ news_plugin.py # ๆฐ้ปๆไปถ
โ โ โโโ README.md # ๆไปถ็ณป็ปๆๆกฃ
โ โ
โ โโโ core/ # ๆ ธๅฟๅทฅๅ
ทๅๆฅๅฃ
โ โ โโโ config.py # ๆ ธๅฟ้
็ฝฎ
โ โ โโโ interfaces.py # ๆฅๅฃๅฎไน
โ โ โโโ exceptions.py # ๅผๅธธๅฎไน
โ โ โโโ factories.py # ๅทฅๅๆจกๅผ
โ โ โโโ config/ # ้
็ฝฎๅญ็ฎๅฝ
โ โ โโโ exceptions/ # ๅผๅธธๅญ็ฎๅฝ
โ โ โโโ interfaces/ # ๆฅๅฃๅญ็ฎๅฝ
โ โ โโโ utils/ # ๅทฅๅ
ทๅฝๆฐ
โ โ
โ โโโ config/ # ้
็ฝฎๆไปถ็ฎๅฝ
โ โ โโโ emotion_strategy.yaml # ๆ
ๆ็ญ็ฅ้
็ฝฎ
โ โ โโโ performance_config.py # ๆง่ฝ้
็ฝฎ
โ โ
โ โโโ middleware/ # ไธญ้ดไปถ
โ โ โโโ __init__.py
โ โ โโโ error_handler.py # ้่ฏฏๅค็ไธญ้ดไปถ
โ โ โโโ logging_middleware.py # ๆฅๅฟไธญ้ดไปถ
โ โ
โ โโโ schemas/ # ๆฐๆฎๆจกๅผๅฎไน
โ โ โโโ __init__.py
โ โ โโโ chat_schemas.py # ่ๅคฉๆฐๆฎๆจกๅผ
โ โ โโโ common_schemas.py # ้็จๆฐๆฎๆจกๅผ
โ โ
โ โโโ utils/ # ๅทฅๅ
ทๅฝๆฐ
โ โ โโโ sentiment_classifier.py # ๆ
ๆๅ็ฑปๅจ
โ โ
โ โโโ validators/ # ๆฐๆฎ้ช่ฏๅจ
โ โ
โ โโโ tests/ # ๆต่ฏ็ฎๅฝ
โ โ โโโ __init__.py
โ โ โโโ unit/ # ๅๅ
ๆต่ฏ
โ โ โโโ integration/ # ้ๆๆต่ฏ
โ โ โโโ e2e/ # ็ซฏๅฐ็ซฏๆต่ฏ
โ โ โโโ fixtures/ # ๆต่ฏ fixtures
โ โ
โ โโโ migrations/ # ๆฐๆฎๅบ่ฟ็งป๏ผAlembic๏ผ
โ โ
โ โโโ database.py # ๆฐๆฎๅบๆจกๅ๏ผSQLAlchemy๏ผ
โ โโโ models.py # Pydanticๆฐๆฎๆจกๅ
โ โโโ dependencies.py # FastAPIไพ่ตๆณจๅ
ฅ
โ โโโ logging_config.py # ๆฅๅฟ้
็ฝฎ
โ โโโ emotion_analyzer.py # ๆ
ๆๅๆๅจ
โ โโโ vector_store.py # ๅ้ๆฐๆฎๅบๆไฝ
โ โโโ memory_manager.py # ่ฎฐๅฟ็ฎก็ๅจ
โ โโโ memory_extractor.py # ่ฎฐๅฟๆๅๅจ
โ โโโ context_assembler.py # ไธไธๆ็ป่ฃ
ๅจ
โ โโโ evaluation_engine.py # ่ฏไผฐๅผๆ
โ โโโ feedback_analyzer.py # ๅ้ฆๅๆๅจ
โ โโโ multimodal_services.py # ๅคๆจกๆๆๅก
โ โโโ prompt_optimizer.py # Promptไผๅๅจ
โ โโโ xinyu_prompt.py # ๅฟ่ฏญPromptๆจกๆฟ
โ
โโโ frontend/ # ๅ็ซฏไปฃ็ ็ฎๅฝ
โ โโโ public/
โ โ โโโ index.html
โ โโโ src/
โ โ โโโ App.js # Reactไธป็ปไปถ
โ โ โโโ index.js # ๅ
ฅๅฃๆไปถ
โ โ โโโ index.css # ๅ
จๅฑๆ ทๅผ
โ โ โโโ components/ # ็ปไปถ็ฎๅฝ
โ โ โ โโโ TypewriterText.js # ๆๅญๆบๆๆ็ปไปถ
โ โ โ โโโ ChatContainer.js # ่ๅคฉๅฎนๅจ็ปไปถ
โ โ โ โโโ FeedbackModal.js # ๅ้ฆๆจกๆๆก
โ โ โ โโโ MultimodalInput.js # ๅคๆจกๆ่พๅ
ฅ็ปไปถ
โ โ โ โโโ PersonalizationPanel.js # ไธชๆงๅ้ขๆฟ
โ โ โ โโโ Sidebar.js # ไพง่พนๆ ็ปไปถ
โ โ โ โโโ StyleComparison.js # ๆ ทๅผๅฏนๆฏ็ปไปถ
โ โ โโโ services/ # ๆๅกๅฑ
โ โ โ โโโ ChatAPI.js # API่ฐ็จๅฐ่ฃ
โ โ โโโ hooks/ # React Hooks
โ โ โโโ utils/ # ๅทฅๅ
ทๅฝๆฐ
โ โ โโโ styles/ # ๆ ทๅผๆไปถ
โ โ โโโ constants/ # ๅธธ้ๅฎไน
โ โโโ package.json
โ โโโ package-lock.json
โ
โโโ alembic/ # ๆฐๆฎๅบ่ฟ็งป
โ โโโ versions/ # ่ฟ็งป่ๆฌ
โ โโโ env.py # Alembic็ฏๅข
โ โโโ alembic.ini # Alembic้
็ฝฎ
โ
โโโ docs/ # ๆๆกฃ็ฎๅฝ
โ โโโ RAGๅฎๆฝๆญฅ้ชค.md # RAG็ณป็ปๆๆกฃ
โ โโโ ่ฎฐๅฟ็ณป็ปๆถๆ.md # ่ฎฐๅฟ็ณป็ปๆๆกฃ
โ โโโ ๆๅพ่ฏๅซๆจกๅ่ฏดๆ.md # ๆๅพ่ฏๅซๆๆกฃ
โ โโโ ๅขๅผบ็่พๅ
ฅๅค็ๅจไฝฟ็จๆๅ.md # ่พๅ
ฅๅค็ๅจๆๆกฃ
โ โโโ ็ไบง้จ็ฝฒๆๅ.md # ็ไบง้จ็ฝฒๆๆกฃ
โ โโโ APIๆฅๅฃๆๆกฃ.md # APIๆฅๅฃๆๆกฃ
โ โโโ plugin_system_guide.md # ๆไปถ็ณป็ปๆๅ
โ โโโ performance_optimization_guide.md # ๆง่ฝไผๅๆๅ
โ โโโ ไธชๆงๅ้
็ฝฎๅ่ฝๆๆกฃ.md # ไธชๆงๅ้
็ฝฎๆๆกฃ
โ โโโ ... # ๆดๅคๆๆกฃ
โ
โโโ examples/ # ็คบไพไปฃ็
โ โโโ intent_recognition_demo.py # ๆๅพ่ฏๅซ็คบไพ
โ โโโ performance_optimization_example.py # ๆง่ฝไผๅ็คบไพ
โ โโโ response_generation_example.py # ๅๅบ็ๆ็คบไพ
โ
โโโ knowledge_base/ # ็ฅ่ฏๅบๆไปถๅญๅจ
โ
โโโ chroma_db/ # ChromaDBๅ้ๆฐๆฎๅบๅญๅจ
โโโ uploads/ # ๆไปถไธไผ ็ฎๅฝ
โโโ log/ # ๆฅๅฟ็ฎๅฝ
โ
โโโ config.py # ๅ
จๅฑ้
็ฝฎ
โโโ config.env # ็ฏๅขๅ้้
็ฝฎ โ ๏ธ ๅ
ๅซๅฏ้ฅ
โโโ config.env.example # ็ฏๅขๅ้ๆจกๆฟ
โโโ env_example.txt # ๆง็็ฏๅขๅ้ๆจกๆฟ๏ผๅทฒๅผ็จ๏ผ
โโโ run_backend.py # ๅ็ซฏๅฏๅจ่ๆฌ
โโโ simple_backend.py # ็ฎๅ็ๅ็ซฏ๏ผๆต่ฏ็จ๏ผ
โโโ db_manager.py # ๆฐๆฎๅบ็ฎก็ๅทฅๅ
ท
โโโ init_rag_knowledge.py # RAG็ฅ่ฏๅบๅๅงๅ
โโโ quick_start.py # ๅฟซ้ๅฏๅจ่ๆฌ
โโโ demo_agent.py # Agentๆผ็คบ่ๆฌ
โโโ test_agent.py # Agentๆต่ฏ่ๆฌ
โโโ test_sentiment_offline.py # ็ฆป็บฟๆ
ๆๆต่ฏ
โโโ test_weather_plugin.py # ๅคฉๆฐๆไปถๆต่ฏ
โโโ requirements.txt # Python 3.10+ ไพ่ต
โโโ Makefile # ๅฝไปค่กๅทฅๅ
ท
โโโ Dockerfile # Docker้ๅๆๅปบ
โโโ docker-compose.yml # Dockerๅฎนๅจ็ผๆ
โโโ alembic.ini # Alembic้
็ฝฎ
โโโ AGENT_README.md # Agentๆจกๅๆๆกฃ
โโโ PYTHON310_INSTALL.md # Python 3.10 ๅฎ่ฃ
ๆๅ
โโโ LICENSE
โโโ README.md # ้กน็ฎๆๆกฃ๏ผๆฌๆไปถ๏ผ
| ๆไปถ | ็จ้ | ่ฏดๆ |
|---|---|---|
backend/app.py |
โ ๅบ็จๅทฅๅ | FastAPIๅบ็จๅๅปบๅ้ ็ฝฎ๏ผv3.0๏ผ |
backend/main.py |
ๆง็ๅ ฅๅฃ | ๅ ผๅฎนๆงไฟ็ |
run_backend.py |
ๅฏๅจ่ๆฌ | ๆจ่็ๅฏๅจๆนๅผ |
| ๅฑ็บง | ็ฎๅฝ | ่ฏดๆ |
|---|---|---|
| ่ทฏ็ฑๅฑ | backend/routers/ |
APIๆฅๅฃๅฎไนๅ่ฏทๆฑๅๅ๏ผchat, agent, memory็ญ๏ผ |
| ๆๅกๅฑ | backend/services/ |
ไธๅก้ป่พๅฐ่ฃ ๅ็ผๆ๏ผchat_service, memory_service็ญ๏ผ |
| ๆจกๅๅฑ | backend/modules/ |
AgentใRAGใLLMใIntentใMultimodalๆ ธๅฟๆจกๅ |
| Agentๅฑ | backend/agent/ |
Agentๆ ธๅฟๅฎ็ฐ๏ผ็ฌ็ซๆจกๅ๏ผๅ ๅซๅทฅๅ ท้๏ผ |
| ๆไปถๅฑ | backend/plugins/ |
ๆไปถ็ณป็ป๏ผweather, news็ญๆฉๅฑๅ่ฝ๏ผ |
| ไธญ้ดไปถๅฑ | backend/middleware/ |
ไธญ้ดไปถ๏ผ้่ฏฏๅค็ใๆฅๅฟ็ญ๏ผ |
| ๆฐๆฎๅฑ | backend/database.py |
ๆฐๆฎๆจกๅๅๆฐๆฎๅบๆไฝ |
| ๆจกๅ | ่ทฏๅพ | ่ฏดๆ |
|---|---|---|
| Agentๆ ธๅฟ | backend/modules/agent/ |
Agentๆจกๅๅๅฎ็ฐ๏ผcore, services, routers๏ผ |
| Agentๅฎ็ฐ | backend/agent/ |
Agentๆ ธๅฟๅฎ็ฐ๏ผagent_core, planner, tools็ญ๏ผ |
| RAG็ณป็ป | backend/modules/rag/ |
็ฅ่ฏๅบ็ฎก็ๅๆฃ็ดขๅขๅผบ |
| LLMๅฐ่ฃ | backend/modules/llm/ |
้ไนๅ้ฎAPIๅฐ่ฃ ๏ผๆฏๆๅคๆไพๅ๏ผ |
| ๆๅพ่ฏๅซ | backend/modules/intent/ |
ๆททๅๅผๆๅพ่ฏๅซ็ณป็ป |
| ๅคๆจกๆ | backend/modules/multimodal/ |
ๅคๆจกๆๅค็๏ผ่ฏญ้ณใๅพๅ็ญ๏ผ |
| ๆไปถ็ณป็ป | backend/plugins/ |
ๅฏๆฉๅฑๆไปถๆถๆ๏ผweather, news็ญ๏ผ |
| ๆไปถ/็ฎๅฝ | ่ฏดๆ |
|---|---|
config.env |
็ฏๅขๅ้๏ผAPIๅฏ้ฅใๆฐๆฎๅบ้
็ฝฎ๏ผ |
backend/config/ |
้ ็ฝฎๆไปถ็ฎๅฝ๏ผemotion_strategy.yaml็ญ๏ผ |
Makefile |
ๅฝไปค่กๅทฅๅ ท๏ผdb-init, rag-init็ญ๏ผ |
docker-compose.yml |
Dockerๅฎนๅจ็ผๆ๏ผๅฎๆด็ๆงๆ ๏ผ |
alembic/ |
ๆฐๆฎๅบ็ๆฌ็ฎก็ |
backend/tests/ |
ๆต่ฏๅฅไปถ๏ผunit, integration, e2e๏ผ |
backend/schemas/ |
ๆฐๆฎๆจกๅผๅฎไน๏ผPydantic models๏ผ |
backend/utils/ |
ๅทฅๅ ทๅฝๆฐๅบ |
examples/ |
็คบไพไปฃ็ ๅๆผ็คบ |
๐ ๅฎๆดAPIๆๆกฃ: ๆฅ็ docs/APIๆฅๅฃๆๆกฃ.md - ๅ ๅซๆๆๆฅๅฃ็่ฏฆ็ป่ฏดๆใ่ฏทๆฑๅๆฐใๅๅบ็คบไพๅ้่ฏฏๅค็
| ๆฅๅฃ | ๆนๆณ | ่ฏดๆ |
|---|---|---|
/ |
GET | ็ณป็ปไฟกๆฏๅๅ่ฝๅ่กจ |
/health |
GET | ๅฅๅบทๆฃๆฅ |
/chat |
POST | ๆฎ้่ๅคฉๆฅๅฃ |
/agent/chat |
POST | Agentๆบ่ฝ่ๅคฉๆฅๅฃ |
/sessions/{id}/history |
GET | ่ทๅไผ่ฏๅๅฒ |
/rag/search |
POST | RAG็ฅ่ฏๅบๆฃ็ดข |
/agent/tools |
GET | Agentๅฏ็จๅทฅๅ ทๅ่กจ |
# ๅฅๅบทๆฃๆฅ
curl http://localhost:8000/health
# ๆต่ฏ่ๅคฉ
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{"message": "ไฝ ๅฅฝ", "user_id": "test_user"}'่ฎฟ้ฎ http://localhost:8000/docs ๆฅ็ๅฎๆด็ Swagger UI ไบคไบๅผๆๆกฃ๏ผๆฏๆๅจ็บฟๆต่ฏๆๆๆฅๅฃใ
ๅทฅไฝๆต็จ:
็จๆท่พๅ
ฅ
โ
Planner ๅๆ็ฎๆ โ ๅถๅฎ็ญ็ฅ
โ
Memory Hub ๆฃ็ดข่ฎฐๅฟ โ ๆๅปบ็ปๅ
โ
Tool Caller ๆง่กๅทฅๅ
ท โ ่ทๅ่ตๆบ
โ
็ๆๅๅค + ๆ
ๆๅๆ
โ
Reflector ่ฏไผฐๆๆ โ ่งๅๅ่ฎฟ
ๆ ธๅฟ่ฝๅ:
- โ ๆบ่ฝไปปๅกๅ่งฃๅ่งๅ
- โ 10+ ๅทฅๅ ท่ชๅจ่ฐ็จ
- โ ้ฟ็ญๆ่ฎฐๅฟ็ฎก็
- โ ็จๆท็ปๅๆๅปบ
- โ ไธปๅจๅ่ฎฟๅ ณๆ
- โ ็ญ็ฅๅๆไผๅ
ๆฃ็ดขๆต็จ:
็จๆท้ฎ้ข
โ
้ฎ้ขๅๆ โ ๅคๆญๆฏๅฆ้่ฆ็ฅ่ฏๅบ
โ
ๅ้ๆฃ็ดข โ ๆฅๆพ็ธๅ
ณ็ฅ่ฏ
โ
็ฅ่ฏ่ๅ โ ๅขๅผบprompt
โ
็ๆๅๅค๏ผๅบไบ็ฅ่ฏ + ๅ
ฑๆ
๏ผ
็น็น:
- โ 6ๅคง็ฑปไธไธๅฟ็ๅฅๅบท็ฅ่ฏ
- โ ่ฏญไน็ธไผผๅบฆๆฃ็ดข
- โ ่ชๅจๅคๆญ็ฅ่ฏๅขๅผบๆถๆบ
- โ ๆฏๆPDF็ญๅค็งๆ ผๅผๅฏผๅ ฅ
ๅๆ็ปดๅบฆ:
- ๆ ๆ็ฑปๅ๏ผๅผๅฟใ้พ่ฟใ็ฆ่ใๆคๆใๅนณ้็ญ
- ๆ ๆๅผบๅบฆ๏ผ0-10ๅ้ๅ่ฏไผฐ
- ๅ ณ้ฎ่ฏๆๅ๏ผ่ฏๅซๆ ็ปช่งฆๅ่ฏ
- ่ถๅฟๅๆ๏ผ่ทจไผ่ฏๆ ๆๅๅ่ฟฝ่ธช
ๅฎ็ฐๆนๅผ:
- ไฝฟ็จ้ไนๅ้ฎ API ่ฟ่กๆ ๆ็่งฃ
- ็ปๅๅๅฒๆฐๆฎ่ฟ่กๆ ๆๆจกๅผๅญฆไน
- ่ชๅจ่ฎฐๅฝๆ ๆๅๆ็ปๆๅฐๆฐๆฎๅบ
ไธๅฑ่ฎฐๅฟๆถๆ:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ญๆ่ฎฐๅฟ (Working Memory) โ
โ ๅฝๅไผ่ฏไธไธๆ๏ผๆ่ฟ5-10ๆก๏ผ โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ้ฟๆ่ฎฐๅฟ (Long-term Memory) โ
โ ChromaDBๅ้ๅญๅจ๏ผๆๆๅๅฒ๏ผ โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็จๆท็ปๅ (User Profile) โ
โ ๆงๆ ผ็นๅพใๅๅฅฝใๆ
ๆๅบ็บฟ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅ่ฝ:
- โ ่ชๅจ่ฎฐๅฟๆๅๅๅญๅจ
- โ ่ฏญไน็ธไผผๅบฆๆฃ็ดข
- โ ่ทจไผ่ฏ่ฎฐๅฟ่ฎฟ้ฎ
- โ ็จๆท็ปๅ่ชๅจๆๅปบ
่ชๅจ่ฏไผฐ:
- ๅๅค่ดจ้่ฏไผฐ๏ผ1-5ๅ๏ผ
- ๅ ฑๆ ๅบฆ่ฏไผฐ
- ๅฎ็จๆง่ฏไผฐ
- ็จๆทๆปกๆๅบฆ้ขๆต
ๅ้ฆๆถ้:
- ็น่ต/็น่ธฉ
- ๆๅญๅ้ฆ
- ้ฎ้ขๆ ๆณจ
- ๆน่ฟๅปบ่ฎฎๆถ้
POST http://localhost:8000/chat
Content-Type: application/json
{
"message": "็จๆทๆถๆฏ",
"session_id": "ไผ่ฏID๏ผๅฏ้๏ผ",
"user_id": "็จๆทID๏ผๅฏ้๏ผ"
}GET http://localhost:8000/sessions/{session_id}/history?limit=20GET http://localhost:8000/sessions/{session_id}/summary็ฐไปฃๅ็่ๅคฉ็้ข่ฎพ่ฎก๏ผๅ ๅซ๏ผ
- ๐ญ ๆ ๆๆ ็ญพๅฏ่งๅ - ๅฎๆถๆพ็คบAI่ฏๅซ็ๆ ๆ็ถๆ
- ๐ฌ ๅปบ่ฎฎๆ้ฎๅฟซ้ๅๅค - ๆบ่ฝๆจ่ๅๅค้้กน
- โจ๏ธ ๆๅญๆบๆๆ - ๆ นๆฎๆ ็ปชๅจๆ่ฐๆดๆๅญ้ๅบฆๅๅ ๆ ้ข่ฒ
- ๐จ ๆต็ ็ๅจ็ปๆๆ - Framer Motion ้ฉฑๅจ็ไบคไบๅจ็ป
- ๐ฑ ๅๅบๅผ่ฎพ่ฎก - ๅฎ็พๆฏๆ็งปๅจ็ซฏ่ฎฟ้ฎ
- ๐ ไผ่ฏ็ฎก็ - ๆฏๆๅคไผ่ฏๅๆขๅๅๅฒ่ฎฐๅฝ
ไธชๆงๅAIๅฝข่ฑกๅฎๅถๅ่ฝ๏ผๆฏๆ๏ผ
- ๐ค AIๆงๆ ผ่ฎพ็ฝฎ - ้ๆฉๆธฉๆใๆดปๆณผใไธไธ็ญไธๅๆงๆ ผ้ฃๆ ผ
- ๐ฌ ๅฏน่ฏ้ฃๆ ผ - ่ฐๆดๅๅค้ฟๅบฆใ่ฏญๆฐๅ่กจ่พพๆนๅผ
- โก ๅๅบ้ๅบฆ - ่ชๅฎไนๆๅญๆบๆๆ้ๅบฆ
- ๐จ ไธป้ขๅฎๅถ - ไธชๆงๅ็้ขไธป้ขๅ้ ่ฒ
- ๐ ๅๅฅฝ่ฎฐๅฟ - ่ชๅจไฟๅญ็จๆทๅๅฅฝ่ฎพ็ฝฎ
- ๐ ไผ่ฏๅๅฒ - ๆฅ็ๅ็ฎก็ๅๅฒๅฏน่ฏ
- โ ๆฐๅปบไผ่ฏ - ไธ้ฎๅผๅฏๆฐๅฏน่ฏ
- โ๏ธ ่ฎพ็ฝฎๅ ฅๅฃ - ๅฟซ้่ฎฟ้ฎไธชๆงๅ่ฎพ็ฝฎ
- ๐ ๆ ๆ่ถๅฟ - ๆฅ็ๆ ๆๅๅ็ป่ฎก
- Agentๅทฅๅ ทๅบๆฉๅฑ๏ผ20+ๅทฅๅ ท๏ผ
- ็ๅฎ็ๅฎๆถๅ่ฎฟ็ณป็ป๏ผAPScheduler๏ผ
- ็จๆทๅๅฅฝๅญฆไน ๅไธชๆงๅๆจ่
- ๅคๆจกๆๆฏๆ๏ผๅพ็็่งฃ๏ผ
- ่ฏญ้ณ่ฝฌๆๅญ้ๆ
- ๆง่ฝไผๅๅ็ผๅญ็ญ็ฅ
- ๅค่ฏญ่จๆฏๆ๏ผ่ฑ่ฏญใๆฅ่ฏญ๏ผ
- ไธไธๅจ่ฏขๅธๅฏนๆฅ็ณป็ป
- A/Bๆต่ฏๆกๆถ
- ้ซ็บงๆ ๆ่ถๅฟๅๆๅ้ขๆต
- ็พค็ป่ๅคฉๆฏๆ
- ็งปๅจ็ซฏ้้ ไผๅ
- ่้ฆๅญฆไน ไฟๆค้็ง
- ๆฌๅฐๅ้จ็ฝฒๆนๆก
- ็งปๅจ็ซฏๅ็App
- ๆบ่ฝๅฏ็ฉฟๆด่ฎพๅค้ๆ
- ๅฟ็ๅฅๅบท็ๆ็ณป็ป
- ๅผๆพAPIๅนณๅฐ
- โ Agentๆบ่ฝๆ ธๅฟ็ณป็ป
- โ RAG็ฅ่ฏๅบ้ๆ
- โ ๅๅฑๆๅกๆถๆ้ๆ
- โ Dockerๅฎนๅจๅ้จ็ฝฒ
- โ ๅฎๆด็ๆงไฝ็ณป
- โ ๆฐๆฎๅบ่ฟ็งป็ฎก็๏ผAlembic๏ผ
- โ ่ฎฐๅฟ็ณป็ปๅ็บง
- โ ่ชๅจ่ฏไผฐ็ณป็ป
- โ ๆๅญๆบๆๆ็ณป็ป๏ผๆ ็ปชๅๆๅญๅจ็ป๏ผ
- โ ไปOpenAI่ฟ็งปๅฐ้ฟ้ไบ้ไนๅ้ฎ
- โ ChromaDBๅ้ๆฐๆฎๅบ้ๆ
- โ LangChain่ฎฐๅฟ็ฎก็
- โ ๆ ๆๅๆไผๅ
- โ Reactๅ็ซฏ็้ข
- โ ๅบ็ก่ๅคฉๅ่ฝ
- โ MySQLๆฐๆฎๆไน ๅ
- โ ๆ ๆ่ฏๅซ
- โ ็ฎๅ็ไธไธๆ็ฎก็
๐ฆ ๅฎๆด้จ็ฝฒๆๅ๏ผdocs/็ไบง้จ็ฝฒๆๅ.md - ไปๅผๅ็ฏๅขๅฐ็ไบง็ฏๅข็ๅฎๆด้จ็ฝฒๆนๆก
้กน็ฎๆไพๅฎๆด็็ไบง็บง้จ็ฝฒๆนๆก๏ผๆฏๆๅค็ง้จ็ฝฒๆนๅผ๏ผ
Docker Compose ้จ็ฝฒ๏ผๆจ่๏ผ๏ผ
# 1. ้
็ฝฎ็ฏๅขๅ้
cp config.env.example config.env
nano config.env
# 2. ๅฏๅจๆๅก
docker-compose up -d
# 3. ๅๅงๅๆฐๆฎๅบๅ็ฅ่ฏๅบ
docker-compose exec backend make db-upgrade
docker-compose exec backend make rag-init
# 4. ้ช่ฏ้จ็ฝฒ
curl http://localhost:8000/healthไผ ็ป้จ็ฝฒ๏ผ
# 1. ๅฎ่ฃ
ไพ่ต๏ผPython 3.10+๏ผ
python --version # ๅ
ๆฃๆฅ็ๆฌ
pip install -r requirements.txt
# 2. ้
็ฝฎ็ฏๅข
cp config.env.example config.env
nano config.env
# 3. ๅๅงๅๆฐๆฎๅบ
make db-upgrade
# 4. ๅๅงๅ็ฅ่ฏๅบ
make rag-init
# 5. ๅฏๅจๆๅก
python run_backend.py- ้
็ฝฎ็ไบง็ฏๅข็
config.envๆไปถ - ๆดๆฐCORSๅ
่ฎธ็ๅๅ๏ผไธ่ฆไฝฟ็จ
*๏ผ - ้ ็ฝฎๅๅไปฃ็๏ผNginx๏ผ
- ๅฏ็จHTTPS/SSL่ฏไนฆ
- ้ ็ฝฎๆฐๆฎๅบๅคไปฝ็ญ็ฅ
- ่ฎพ็ฝฎๆฅๅฟ่ฝฎ่ฝฌ
- ้ ็ฝฎ็ๆงๅๅ่ญฆ
- ๅๅงๅๆฐๆฎๅบ๏ผ
make db-upgrade๏ผ - ๅๅงๅRAG็ฅ่ฏๅบ๏ผ
make rag-init๏ผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็จๆทๆต่งๅจ โ
โ (่ฎฟ้ฎ: http://your-domain.com) โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Nginx ๅๅไปฃ็ โ
โ (็ซฏๅฃ: 80, 443) โ
โโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโโผโโโโโโโโโโโ โโโโโโโโโโผโโโโโโโโโโโ
โ ๅ็ซฏๆๅก โ โ ๅ็ซฏAPIๆๅก โ
โ React 18 โ โ FastAPI + Python โ
โ ็ซฏๅฃ: 3000 โ โ ็ซฏๅฃ: 8000 โ
โโโโโโโโโโโโโโโโโโ โโโโโโฌโโโโโโโฌโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโโโโโโโโโโ
โ โ โ โ
โโโโโโโโผโโโโโโโ โโโโโโผโโโโโ โโโโโโโโโโโโโโโผโโ
โ MySQL โ โ Redis โ โ ChromaDB โ
โ ๅ
ณ็ณปๆฐๆฎๅบ โ โ ็ผๅญ โ โ ๅ้ๆฐๆฎๅบ โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
็ๆงๆ ๏ผ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโ
โ Prometheus โ Grafana โ Elasticsearchโ Kibana โ
โ ๆๆ ้้ โ ๅฏ่งๅ โ ๆฅๅฟๅญๅจ โ ๆฅๅฟๅๆ โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโ
่ฏฆ็ป็็ไบง้จ็ฝฒๆๅๅ ๅซ๏ผ
- โ ้จ็ฝฒๅๅๅค๏ผ้ ็ฝฎ็ฎก็ใไพ่ต้ๅฎใๅฏๅจ่ๆฌ
- โ Dockerๅฎนๅจๅ้จ็ฝฒ๏ผ็ฏๅขไธ่ดๆงใ็ๆง้ๆใๆฐๆฎๆไน ๅ
- โ ไบๆๅกๅจ้จ็ฝฒ๏ผECS้ ็ฝฎใGunicorn้ ็ฝฎใSystemdๆๅก
- โ HTTPSๅฎๅ จๅ ๅบ๏ผLet's Encrypt่ฏไนฆใNginx้ ็ฝฎ
- โ ็ๆงๅ็ปดๆค๏ผPrometheusใGrafanaใๆฅๅฟ็ฎก็
- โ ๆ ้ๆๆฅ๏ผๅธธ่ง้ฎ้ข่งฃๅณๆนๆก
๐ ๆฅ็ๅฎๆดๆๆกฃ๏ผdocs/็ไบง้จ็ฝฒๆๅ.md
MIT License
้กน็ฎๆไพไบไพฟๆท็Makefileๅฝไปค๏ผ็ฎๅๅธธ็จๆไฝ๏ผ
# ๆฅ็ๆๆๅฏ็จๅฝไปค
make help
# ๅฎ่ฃ
ไพ่ต
make install
# ๆฐๆฎๅบ็ฎก็
make db-init # ๅๅงๅๆฐๆฎๅบ
make db-upgrade # ๅ็บงๅฐๆๆฐ็ๆฌ
make db-downgrade # ้็บงไธไธช็ๆฌ
make db-current # ๆฅ็ๅฝๅ็ๆฌ
make db-history # ๆฅ็่ฟ็งปๅๅฒ
make db-check # ๆฃๆฅๆฐๆฎๅบ่ฟๆฅ
# RAG็ฅ่ฏๅบ
make rag-init # ๅๅงๅ็ฅ่ฏๅบ
make rag-test # ๆต่ฏRAG็ณป็ป
make rag-demo # RAGๆๆๅฏนๆฏๆผ็คบ
# ่ฟ่กๆๅก
make run # ๅฏๅจๅ็ซฏๆๅก- ็ไบง้จ็ฝฒ: docs/็ไบง้จ็ฝฒๆๅ.md - ไปๅผๅๅฐ็ไบง็ๅฎๆด้จ็ฝฒๆนๆก ๐ ๆฐๅข
- MacBook้ ็ฝฎ: docs/MACBOOK_SETUP.md - macOS ็จๆทไธ็จ้ ็ฝฎๆๅ ๐ ๆฐๅข
- Agentๆจกๅ: AGENT_README.md - Agentๆบ่ฝๆ ธๅฟ่ฏฆ็ปๆๆกฃ
- RAG็ณป็ป: docs/RAGๅฎๆฝๆญฅ้ชค.md - RAG็ฅ่ฏๅบๅฎๆฝๆๅ
- ่ฎฐๅฟ็ณป็ป: docs/่ฎฐๅฟ็ณป็ปๆถๆ.md - ่ฎฐๅฟ็ณป็ปๆถๆ่ฏดๆ
- ๆๅพ่ฏๅซ: docs/ๆๅพ่ฏๅซๆจกๅ่ฏดๆ.md - ๆๅพ่ฏๅซ็ณป็ปๅฎๆดๆๆกฃ
- ่พๅ ฅๅค็: docs/ๅขๅผบ็่พๅ ฅๅค็ๅจไฝฟ็จๆๅ.md - ๅขๅผบ็่พๅ ฅ้ขๅค็ๅจ โญ ๆฐๅข
- ๅคๆจกๆไบคไบ: ๅคๆจกๆๆ ๆไบคไบๅ่ฝ๏ผ่ฏญ้ณ่ฏๅซใๅพๅ็่งฃ็ญ๏ผ ๐๏ธ ๆฐๅข
- ๐ ๆ็จ็ดขๅผ: docs/ๅ้ๆฐๆฎๅบๆ็จ็ดขๅผ.md - ๅ้ๆฐๆฎๅบๅญฆไน ่ทฏๅพๅฏผ่ช
- ๐ ๅฎๆดๆ็จ: docs/ๅ้ๆฐๆฎๅบ้ๆๆ็จ_Chroma็.md - Chroma ้ๆ่ฏฆ็ปๆ็จ
- โ๏ธ ๆๆฏๅฏนๆฏ: docs/Pinecone_vs_Chroma_ๅฏนๆฏ.md - Pinecone vs Chroma ๅ จ้ขๅฏนๆฏ
- ๐ป ไปฃ็ ็คบไพ: examples/README.md - ๅฟซ้ๅ ฅ้จๅๅฎๆดๆผ็คบ
- APIๆๆกฃ: http://localhost:8000/docs - ไบคไบๅผAPIๆๆกฃ๏ผSwagger UI๏ผ
ๆฌข่ฟๆไบคIssueๅPull Requestๆฅๆน่ฟ่ฟไธช้กน็ฎ๏ผ
- Fork ๆฌ้กน็ฎ
- ๅๅปบ็นๆงๅๆฏ (
git checkout -b feature/AmazingFeature) - ๆไบคๆดๆน (
git commit -m 'Add some AmazingFeature') - ๆจ้ๅฐๅๆฏ (
git push origin feature/AmazingFeature) - ๅผๅฏ Pull Request
- ้ตๅพชPEP 8 Pythonไปฃ็ ่ง่
- ๆทปๅ ้ๅฝ็ๆณจ้ๅๆๆกฃๅญ็ฌฆไธฒ
- ็ผๅๅๅ ๆต่ฏ
- ๆดๆฐ็ธๅ ณๆๆกฃ
- emotional_chat - ๅๅง้กน็ฎๅ่
- ้ฟ้ไบ้ไนๅ้ฎๅข้ - ๆไพไผ็ง็ไธญๆๅคง่ฏญ่จๆจกๅ
- LangChain็คพๅบ - ๆไพๅผบๅคง็LLMๅบ็จๆกๆถ
- ๆๆ่ดก็ฎ่ ๅ็จๆท็ๆฏๆ
ๅฆๆ้ฎ้ขๆๅปบ่ฎฎ๏ผๆฌข่ฟ้่ฟไปฅไธๆนๅผ่็ณป๏ผ
- ๆไบค GitHub Issue
- ๅ้้ฎไปถๅฐ้กน็ฎ็ปดๆค่ congdeyuan@gmail.com
- ๅพฎไฟก๏ผjx-yuancongde
๐ ่ฎฉAIๆดๆๆธฉๅบฆ๏ผ่ฎฉ้ชไผดๆดๆไฝ ๐
ๅฟ่ฏญๆ ๆ้ชไผดๆบๅจไบบ v3.0.0 - ไป่ขซๅจๅๅบๅฐไธปๅจๆๅก๏ผๆไปฌไธ็ดๅจ่ฟๅใ

