feat: 添加公司AI管理平台基础架构 添加了完整的FastAPI后端项目结构,包括: - 环境配置文件(.env.example)和项目说明文档(README.md、AGENTS.md) - Dockerfile用于容器化部署 - 核心基础设施:配置管理、数据库连接、调度器、安全认证 - 模块化设计:AI代理、审批流程、审计日志、业务台账等功能模块 - 支持多数据库连接(主库和遗留系统只读库) - AI适配器支持OpenClaw、Hermes、OpenAI兼容接口 - 飞书集成、报表生成、风险监控等企业级功能 - 完整的依赖管理和测试指南 ```
3.0 KiB
Repository Guidelines
Project Structure & Module Organization
This is a FastAPI modular monolith for company AI management workflows. Source lives in app/. Shared infrastructure is under app/core/; app/api/router.py wires modules under /api/v1. Business capabilities live in app/modules/: business, legacy_mysql, feishu, ai_agent, reports, risk, approvals, and audit. Database tools are in app/tools/. Tests live in tests/, scripts in scripts/, and notes in docs/.
Modular Design & Technology Direction
All new work must start with modular design: define boundaries, services, schemas, and adapters before coding. Prefer modern, maintained patterns and tech aligned with FastAPI, SQLAlchemy 2, Pydantic Settings, and async-ready integrations. Use service layer, adapter, dependency injection, and ports/adapters for external systems. Add dependencies only with clear benefit.
Build, Test, and Development Commands
Common commands:
conda env create -f environment.yml
conda env update -f environment.yml --prune
conda run -n company-ai-platform python -m app.tools.init_db
conda run -n company-ai-platform uvicorn app.main:app --reload --host 0.0.0.0 --port 8010
conda run -n company-ai-platform python -m compileall app tests scripts
conda run -n company-ai-platform python scripts\verify_smoke.py
conda run -n company-ai-platform pytest -q
Coding Style & Naming Conventions
Use Python 3.11, 4-space indentation, type hints, and concise service classes. Follow models.py, schemas.py, service.py, and routes.py. Keep routes thin and put business logic in services. Use snake_case for functions, variables, filenames; use PascalCase for SQLAlchemy models and Pydantic schemas. Ruff uses line length 100.
Follow the Google Python Style Guide: group imports as standard library, third-party, local; write docstrings for non-trivial public APIs; prefer explicit exceptions and early returns; and keep functions focused. Use type annotations instead of type comments.
Testing Guidelines
Tests use pytest and FastAPI TestClient. Name files test_*.py and functions test_*. Prefer temporary SQLite databases, as in tests/test_smoke.py, so tests do not require MySQL, Feishu, or external AI providers. Cover approval gates, audit-sensitive flows, and API responses for high-risk modules.
Commit & Pull Request Guidelines
No Git history is available. Use short, imperative commits such as Add approval audit test. Pull requests should describe the change, list verification, mention config or migration impacts, and link related issues. Include screenshots only for API docs or visible UI changes.
Security & Configuration Tips
Do not commit real .env files or secrets. Start from .env.example. Keep LEGACY_DATABASE_URL read-only, set API_KEY outside local-only testing, and configure Feishu verification tokens before exposing webhooks. High-risk fund-accounts and performance-metrics updates must require approved tickets.