初始化项目基础结构

添加了完整的前后端开发环境配置,包括:
- 创建 .gitignore 文件忽略本地生成目录和环境文件
- 添加详细的 README.md 开发指南文档
- 配置 backend 目录结构和 FastAPI 应用基础框架
- 实现应用配置管理、健康检查和状态接口
- 设置 uv 依赖管理和虚拟环境配置
- 完成 CORS 中间件配置支持前端开发联调
This commit is contained in:
2026-08-27 11:19:36 +08:00
commit 08e4aeea0c
29 changed files with 3539 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
"""Notes Agent AI Core."""
+25
View File
@@ -0,0 +1,25 @@
import os
from dataclasses import dataclass
from functools import lru_cache
@dataclass(frozen=True)
class Settings:
"""应用基础配置;正式环境可通过 APP_* 环境变量覆盖。"""
name: str
version: str
environment: str
host: str
port: int
@lru_cache
def get_settings() -> Settings:
return Settings(
name=os.getenv("APP_NAME", "Notes Agent AI Core"),
version=os.getenv("APP_VERSION", "0.1.0"),
environment=os.getenv("APP_ENVIRONMENT", "development"),
host=os.getenv("APP_HOST", "127.0.0.1"),
port=int(os.getenv("APP_PORT", "8000")),
)
+35
View File
@@ -0,0 +1,35 @@
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.config import get_settings
from app.schemas import HealthResponse, ServiceStatusResponse
settings = get_settings()
app = FastAPI(
title=settings.name,
version=settings.version,
description="AI 笔记软件的本地 FastAPI 服务壳子。",
)
app.add_middleware(
CORSMiddleware,
allow_origins=["http://127.0.0.1:5173", "http://localhost:5173"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/health", response_model=HealthResponse, tags=["System"])
async def health() -> HealthResponse:
return HealthResponse()
@app.get("/api/status", response_model=ServiceStatusResponse, tags=["System"])
async def service_status() -> ServiceStatusResponse:
return ServiceStatusResponse(
name=settings.name,
version=settings.version,
environment=settings.environment,
)
+13
View File
@@ -0,0 +1,13 @@
from typing import Literal
from pydantic import BaseModel
class HealthResponse(BaseModel):
status: Literal["ok"] = "ok"
class ServiceStatusResponse(HealthResponse):
name: str
version: str
environment: str