🚀 Add generate/import routers
🛠 Refactor main.py
📦 Update models
This commit is contained in:
parent
0fffbcfba4
commit
082ca6c638
8 changed files with 137 additions and 66 deletions
12
README.md
12
README.md
|
@ -6,9 +6,9 @@ Système de création de contenu rétrospectif
|
|||
|
||||
## Backend
|
||||
|
||||
| Route | Method | Description |
|
||||
|--------------------|--------|----------------------|
|
||||
| /import/data | POST | Import raw data |
|
||||
| /analyse/{data_id} | GET | Analyse stored data |
|
||||
| /export/{data_id} | GET | Export analysed data |
|
||||
| /generate/content | POST | Generate new content |
|
||||
| Route | Method | Description |
|
||||
|------------|--------|----------------------|
|
||||
| /import/ | POST | Import raw data |
|
||||
| /analysis/ | GET | Analysis stored data |
|
||||
| /export/ | GET | Export analysed data |
|
||||
| /generate/ | POST | Generate new content |
|
|
@ -1,67 +1,16 @@
|
|||
from fastapi import FastAPI, APIRouter, HTTPException
|
||||
import uuid
|
||||
from fastapi import FastAPI
|
||||
from routers.convert_router import convert_router
|
||||
from routers.import_router import import_router
|
||||
from routers.analysis_router import analysis_router
|
||||
from routers.export_router import export_router
|
||||
from routers.generate_router import generate_router
|
||||
|
||||
|
||||
app = FastAPI(title="Retro API", description="Retro content management system")
|
||||
|
||||
# Routers
|
||||
import_router = APIRouter(prefix="/import", tags=["Import"])
|
||||
analyse_router = APIRouter(prefix="/analyse", tags=["Analyse"])
|
||||
export_router = APIRouter(prefix="/export", tags=["Export"])
|
||||
generate_router = APIRouter(prefix="/generate", tags=["Generate"])
|
||||
|
||||
# Sample data storage (replace with Milvus/DB integration)
|
||||
data_store = {}
|
||||
|
||||
# Import Router
|
||||
@import_router.post("/data")
|
||||
def import_data(data: dict):
|
||||
"""
|
||||
Import data (e.g., text, files, or structured data).
|
||||
"""
|
||||
data_id = str(uuid.uuid4())
|
||||
data_store[data_id] = data
|
||||
return {"message": "Data imported successfully", "data_id": data_id}
|
||||
|
||||
# Analyse Router
|
||||
@analyse_router.get("/{data_id}")
|
||||
def analyse_data(data_id: str):
|
||||
"""
|
||||
Analyse imported data (e.g., sentiment, keywords, or patterns).
|
||||
"""
|
||||
if data_id not in data_store:
|
||||
raise HTTPException(status_code=404, detail="Data not found")
|
||||
# Placeholder for analysis logic
|
||||
return {
|
||||
"data_id": data_id,
|
||||
"analysis": {"word_count": len(data_store[data_id].get("text", ""))},
|
||||
}
|
||||
|
||||
# Export Router
|
||||
@export_router.get("/{data_id}")
|
||||
def export_data(data_id: str):
|
||||
"""
|
||||
Export analysed data (e.g., as JSON, CSV, or PDF).
|
||||
"""
|
||||
if data_id not in data_store:
|
||||
raise HTTPException(status_code=404, detail="Data not found")
|
||||
return {
|
||||
"data_id": data_id,
|
||||
"content": data_store[data_id],
|
||||
"status": "exported",
|
||||
}
|
||||
|
||||
# Generate Router
|
||||
@generate_router.post("/content")
|
||||
def generate_content(prompt: str):
|
||||
"""
|
||||
Generate new content (e.g., text, images, or summaries).
|
||||
"""
|
||||
# Placeholder for generation logic (e.g., LLM, AI model)
|
||||
generated = {"response": f"Generated content based on: {prompt}"}
|
||||
return {"message": "Content generated", "data": generated}
|
||||
|
||||
# Include routers in the main app
|
||||
app.include_router(convert_router)
|
||||
app.include_router(import_router)
|
||||
app.include_router(analyse_router)
|
||||
app.include_router(analysis_router)
|
||||
app.include_router(export_router)
|
||||
app.include_router(generate_router)
|
||||
|
|
48
backend/models.py
Normal file
48
backend/models.py
Normal file
|
@ -0,0 +1,48 @@
|
|||
from typing import Dict
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class AnalysisRequest:
|
||||
analysis_type: str
|
||||
filters: Dict
|
||||
|
||||
class AnalysisResponse:
|
||||
result: str
|
||||
|
||||
|
||||
class ConversionRequest(BaseModel):
|
||||
source_type: str
|
||||
source_data: str
|
||||
|
||||
|
||||
class ConversionResponse(BaseModel):
|
||||
converted_data: dict
|
||||
status: str
|
||||
|
||||
|
||||
class ExportRequest:
|
||||
filters: Dict
|
||||
format: str
|
||||
|
||||
|
||||
class ExportResponse:
|
||||
export_url: str
|
||||
status: str
|
||||
|
||||
|
||||
class GenerateRequest:
|
||||
prompt: str
|
||||
|
||||
|
||||
class GenerateResponse:
|
||||
content_url: str
|
||||
status: str
|
||||
|
||||
|
||||
class ImportRequest:
|
||||
data: str
|
||||
|
||||
|
||||
class ImportResponse:
|
||||
status: str
|
14
backend/routers/analysis_router.py
Normal file
14
backend/routers/analysis_router.py
Normal file
|
@ -0,0 +1,14 @@
|
|||
from fastapi import APIRouter
|
||||
|
||||
from backend.models import AnalysisResponse, AnalysisRequest
|
||||
|
||||
analysis_router = APIRouter(prefix="/analysis", tags=["Analysis"])
|
||||
|
||||
@analysis_router.post("/", response_model=AnalysisResponse)
|
||||
def analysis_data(request: AnalysisRequest):
|
||||
"""
|
||||
Analysis imported data (e.g., sentiment, keywords, or patterns).
|
||||
"""
|
||||
# Placeholder for analysis logic
|
||||
analysis = ...
|
||||
return {"analysis": analysis}
|
18
backend/routers/convert_router.py
Normal file
18
backend/routers/convert_router.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
from fastapi import APIRouter
|
||||
|
||||
from backend.models import ConversionResponse, ConversionRequest
|
||||
|
||||
convert_router = APIRouter(prefix="/convert", tags=["Convert"])
|
||||
|
||||
@convert_router.post("/", response_model=ConversionResponse)
|
||||
def convert_data(request: ConversionRequest):
|
||||
"""
|
||||
Convert data from one format to another (e.g., JSON to CSV, text to XML).
|
||||
"""
|
||||
# Example conversion logic (replace with actual implementation)
|
||||
converted_data = ...
|
||||
|
||||
return {
|
||||
"converted_data": converted_data,
|
||||
"status": "success"
|
||||
}
|
13
backend/routers/export_router.py
Normal file
13
backend/routers/export_router.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
from fastapi import APIRouter
|
||||
|
||||
from backend.models import ExportRequest, ExportResponse
|
||||
|
||||
export_router = APIRouter(prefix="/export", tags=["Export"])
|
||||
|
||||
@export_router.post("/", response_model=ExportResponse)
|
||||
def export_data(request: ExportRequest):
|
||||
"""
|
||||
Export analysed data (e.g., as JSON, CSV, or PDF).
|
||||
"""
|
||||
exported_data_url = ...
|
||||
return {"url": exported_data_url}
|
15
backend/routers/generate_router.py
Normal file
15
backend/routers/generate_router.py
Normal file
|
@ -0,0 +1,15 @@
|
|||
from fastapi import APIRouter
|
||||
|
||||
from backend.models import GenerateResponse, GenerateRequest
|
||||
|
||||
generate_router = APIRouter(prefix="/generate", tags=["Generate"])
|
||||
|
||||
|
||||
@generate_router.post("/", response_model=GenerateResponse)
|
||||
def generate_content(request: GenerateRequest):
|
||||
"""
|
||||
Generate new content (e.g., text, images, or summaries).
|
||||
"""
|
||||
# Placeholder for generation logic (e.g., LLM, AI model)
|
||||
response = ...
|
||||
return response
|
14
backend/routers/import_router.py
Normal file
14
backend/routers/import_router.py
Normal file
|
@ -0,0 +1,14 @@
|
|||
from fastapi import APIRouter
|
||||
|
||||
from backend.models import ImportRequest, ImportResponse
|
||||
|
||||
import_router = APIRouter(prefix="/import", tags=["Import"])
|
||||
|
||||
|
||||
@import_router.post("/", response_model=ImportResponse)
|
||||
def import_data(request: ImportRequest):
|
||||
"""
|
||||
Import data (e.g., text, files, or structured data).
|
||||
"""
|
||||
response = ...
|
||||
return response
|
Loading…
Add table
Reference in a new issue