TFRobotServer
ๅบไบ TFRobot ๆกๆถ็ใๆฐๅญๅๅทฅใๆๅก็ซฏ๏ผๆไพ RESTful API ๆฅๅฃใ
็ฎไป
TFRobotServer ๆฏๅฏน TFRobot ๆกๆถ็ FastAPI ๅฐ่ฃ ๏ผๅฐๅ ถ่ฝๅไปฅๆๅกๅฝขๅผๅฏนๅคๆไพใ้่ฟ็ตๆดป็ API ๆฅๅฃ๏ผๅฏไปฅๅฎ็ฐๅฏน TFRobot ็้ ็ฝฎ่ฐๆดๅๅจๆ็ฎก็๏ผๅนถๆฏๆ Kubernetes ้็พค้จ็ฝฒใ
ๆ ธๅฟ็ฎๆ
- ๆๅกๅๅฐ่ฃ ๏ผๅฐ TFRobot ็ๅ่ฝๅฐ่ฃ ไธบ RESTful API
- ๅจๆ้ ็ฝฎ๏ผ้่ฟ API ๅฎๆถ่ฐๆด Robot ้ ็ฝฎ
- ไบๅ็้จ็ฝฒ๏ผๆฏๆ Kubernetes ้จ็ฝฒ๏ผๆฏไธช Pod ๆไพ็ฌ็ซๆๅก
- ๅฏ่งๆตๆง๏ผๅ ็ฝฎ็ๆงใๆฅๅฟ่ฎฐๅฝๅไปช่กจๆฟ่ฝๅ
- ๅผๆญฅไปปๅก๏ผ้่ฟ Celery ๆไพ้ซๅนถๅไปปๅกๅค็่ฝๅ
ๆ ธๅฟ็นๆง
ๅ็บฟ็จๆง่กๆจกๅ
TFRobotServer ้็จๅ็บฟ็จๆจกๅผ่ฟ่ก๏ผ่ฟๆฏ็ฑไปฅไธ่ฎพ่ฎกๅณๅฎ๏ผ
- ้ ็ฝฎไพ่ต๏ผTFRobot ้ ็ฝฎๅญๅจๅจๆไปถ็ณป็ป๏ผๅ่ฟ็จ็กฎไฟ้ ็ฝฎไธ่ดๆง
- ๅบ็จๅบๆฏ๏ผใๆฐๅญๅๅทฅใๅบๆฏๆ ้้ซๅนถๅ๏ผๅไธชๅๅทฅไธๆณจๅค็ไปปๅก
- ่ตๆบ็ฎก็๏ผ้ฟๅ ๅค่ฟ็จๅธฆๆฅ็่ตๆบ็ซไบๅ็ถๆๅๆญฅ้ฎ้ข
ๅฏนไบๆ้็ๅนถๅ้ๆฑ๏ผไฝฟ็จ FastAPI ็ๅผๆญฅๆจกๅผ๏ผasync/await๏ผๅณๅฏๆปก่ถณใ
ๅๅฑๆถๆ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ API Layer โ
โ (RESTful API - FastAPI) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Services Layer โ
โ (ไธๅก้ป่พ - RobotFactory, Admin) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Dependencies Layer โ
โ (ไพ่ตๆณจๅ
ฅ - TFSContainer + Providers) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Infrastructure Layer โ
โ (Database, Redis, Celery, TFRobot Core) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
OpenTelemetry ้ๆ
ๅฎๆด็่ฐ็จ้พ่ฟฝ่ธช๏ผๅฏๆฅๅ ฅ Grafana ็ญ็ๆง็ณป็ปใ
ๆๆฏๆ
| ็ฑปๅซ | ๆๆฏ |
|---|---|
| Web ๆกๆถ | FastAPI + Uvicorn |
| ๆฐๆฎ้ช่ฏ | Pydantic V2 |
| ORM | SQLAlchemy 2.0 (ๅผๆญฅ) |
| ไพ่ตๆณจๅ ฅ | dependency-injector |
| ไปปๅก้ๅ | Celery + RabbitMQ |
| ๆฐๆฎๅบ | PostgreSQL + Redis |
| ่ฟฝ่ธช | OpenTelemetry |
| ๆๆกฃ | MkDocs + Material |
| ๆฅๅฃๆๆกฃ | Apifox |
ๅฟซ้ๅผๅง
็ฏๅข่ฆๆฑ
- Python 3.11+
- Poetry
- Kubernetes (ๅฏ้๏ผ็จไบ็ไบง้จ็ฝฒ)
kubectlCLI (ๅฏ้)
ๅๅงๅๅผๅ็ฏๅข
# 1. ๅฎ่ฃ
ไพ่ตๅนถๅๅงๅ alembic
make init
# 2. ้็ฝฎ PostgreSQL ๆฐๆฎๅบ๏ผ้่ฆ k8s๏ผ
make reset_postgresql
# 3. ้็ฝฎ Redis ๅนถ้ๅปบ็ดขๅผ๏ผ้่ฆ k8s๏ผ
make reset_redis
# 4. ๅฏๅจๅผๅๆๅกๅจ
poetry run uvicorn tfrobotserver.main:app --host 0.0.0.0 --port 8000 --reload
่ฟ่กๆต่ฏ
# ๅๅ
ๆต่ฏ
make test-unit
# ้ๆๆต่ฏ
make integration_tests
# ๅฎๆดๆต่ฏ๏ผๅซ่ฆ็็๏ผ
make test-coverage
ๆๆกฃๅฏผ่ช
API ๆฅๅฃ
่ฏฆ็ป็ API ๆฅๅฃๆๆกฃ่ฏทๆฅ้ Apifoxใ
่ฎพ่ฎกๆๆกฃ๏ผ - Chat API ่ฎพ่ฎก - Admin API ่ฎพ่ฎก - Robot Factory API ่ฎพ่ฎก
ๆๅกๅฑ
ๅบ็ก่ฎพๆฝ
่ฎพ่ฎก็บฆๅฎ
ๅ้กตไป 0 ๅผๅง
ๆๆๅ้กตๆฅๅฃ็้กต็ ไป 0 ๅผๅง๏ผ่้ 1๏ผใ
็ฏๅขๅ้ๅ็ผ
้
็ฝฎ้กนไฝฟ็จ TFS_ ๅ็ผ๏ผไพๅฆ๏ผ
- TFS_USERNAME
- TFS_PROFILE
ๆฐๆฎๅบ Schema
ๆๆ่กจไฝฟ็จ tfrserver schemaใ
็ดขๅผๅฎไน
ไฝฟ็จ Index() ็ฑปๅฎไน็ดขๅผ๏ผ่้ __table_args__๏ผๅ ไธบๅบ็ฑปๅทฒๅ ็จ๏ผใ
ๅผๅๆๅ
ไปฃ็ ๆ ผๅผๅ
make format # Ruff ๆ ผๅผๅๅๅฏผๅ
ฅๆๅบ
make lint # MyPy ๅ Ruff ๆฃๆฅ
ๆฐๆฎๅบ่ฟ็งป
make upgrade_postgresql # ่ชๅจ็ๆๅนถๅบ็จ่ฟ็งป
ๅธธ็จๅฝไปค
# ๆฅ็ๅฏ็จๅฝไปค
make help
# ้็ฝฎ MinIO๏ผ้่ฆ mc CLI ๅ jq๏ผ
make reset_minio
ๆถๆ่ฏดๆ
ไธ TFRobot ็ๅ ณ็ณป
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ TFRobotServer (ๆฌ้กน็ฎ) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ FastAPI Web ๆๅก (RESTful API) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Celery ไปปๅก้ๅ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ่ฐ็จ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ TFRobot ๆ ธๅฟๆกๆถ โ
โ (Chain/Memory/Tool/Drive/Neural) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
้จ็ฝฒๆถๆ
Kubernetes Cluster
โ
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โโโโโผโโโโโ โโโโโผโโโโโ โโโโโผโโโโโ
โ Pod 1 โ โ Pod 2 โ โ Pod N โ
โ (ๅๅทฅA) โ โ (ๅๅทฅB) โ โ (ๅๅทฅN) โ
โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโ
โ PostgreSQL + Redis โ
โ RabbitMQ + MinIO โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅธธ่ง้ฎ้ข
Q: ไธบไปไน้็จๅ็บฟ็จๆจกๅผ๏ผ
A: TFRobot ้ ็ฝฎไพ่ตๆไปถ็ณป็ป๏ผๅค่ฟ็จไผๅฏผ่ด้ ็ฝฎไธไธ่ดใๆฐๅญๅๅทฅๅบๆฏไนๆ ้้ซๅนถๅ๏ผๅผๆญฅๆจกๅผๅทฒ่ฝๆปก่ถณๆ้ๅนถๅ้ๆฑใ
Q: ๅฆไฝๆฉๅฑๅนถๅ่ฝๅ๏ผ
A: ้่ฟ Kubernetes ๆฐดๅนณๆฉๅฑ Pod ๆฐ้๏ผๆฏไธช Pod ็ฌ็ซ่ฟ่กไธไธชใๆฐๅญๅๅทฅใใ
Q: API ๆๆกฃๅจๅช้๏ผ
A: ่ฏฆ็ปๆฅๅฃๆๆกฃๅจ Apifox ไธญ็ปดๆค๏ผ่ฎพ่ฎกๆๆกฃ่ฏดๆๆฅๅฃ็่ฎพ่ฎกๆ่ทฏๅไฝฟ็จๅบๆฏใ
็ๆฌไฟกๆฏ
ๅฝๅ็ๆฌ๏ผ0.1.1-rc2
็ธๅ ณ้กน็ฎ
- TFRobot - ๆ ธๅฟ Agent ๆกๆถ
- TFRobotOps - ่ฟ็ปดๅๅบ็ก่ฎพๆฝ
- TFRobotFront - ๅ็ซฏ้กน็ฎ