This is the Python backend for the AI chat application, built with FastAPI.
- RESTful API for AI chat functionality
- Integration with ModelScope AI API (compatible with OpenAI)
- Function calling support for weather information and calculator
- CORS support for frontend integration
- Modular architecture with clear separation of concerns
ai-python-work/
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI应用初始化
│ ├── config/
│ │ ├── __init__.py
│ │ └── settings.py # 配置管理
│ ├── api/
│ │ ├── __init__.py
│ │ └── routes/
│ │ ├── __init__.py
│ │ └── chat.py # 聊天API路由
│ ├── services/
│ │ ├── __init__.py
│ │ ├── ai_service.py # AI服务
│ │ ├── weather_service.py # 天气服务
│ │ └── calculator_service.py # 计算器服务
│ └── utils/
│ ├── __init__.py
│ └── constants.py # 常量定义(如城市代码)
├── .env # 环境变量
├── requirements.txt # 依赖包
├── README.md # 项目文档
├── run.py # 应用启动入口
└── main.py # 兼容旧版本的启动方式
- Install dependencies:
pip install -r requirements.txt- Run the application:
python run.pyOr with uvicorn:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000GET /api/chat?question={question}- Get AI response for a question
The application uses environment variables for configuration:
OPENAI_API_KEY- API key for the AI service (defaults to provided key)OPENAI_API_HOST- Host for the AI API (defaults to ModelScope)
The AI can call these functions:
queryWeather- Get weather information for a citycalculator- Perform basic mathematical operations
The project follows a modular architecture with clear separation of concerns:
- Config Layer: Handles all configuration management
- API Layer: Defines REST endpoints and handles HTTP requests
- Service Layer: Contains business logic for different functionalities
- Utils Layer: Provides utility functions and constants