from fastapi import FastAPI from pydantic import BaseModel from llama_index.core import Document, ServiceContext from llama_index.llms.openai import OpenAI from llama_index.core.node_parser import SemanticSplitterNodeParser import os app = FastAPI() # Requête d'entrée class ChunkRequest(BaseModel): text: str # Réponse @app.post("/chunk") async def chunk_text(data: ChunkRequest): llm = OpenAI( model="meta-llama/llama-4-maverick:free", api_base="https://openrouter.ai/api/v1", api_key=os.getenv("OPENROUTER_API_KEY") ) service_context = ServiceContext.from_defaults(llm=llm) try: parser = SemanticSplitterNodeParser.from_defaults(service_context=service_context) nodes = parser.get_nodes_from_documents([Document(text=data.text)]) return {"chunks": [node.text for node in nodes]} except Exception as e: return {"error": str(e)}