File size: 1,051 Bytes
d11e1fe
 
 
 
 
 
 
 
 
 
 
 
2583cf2
 
 
 
 
d11e1fe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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
    source_id: Optional[str] = None
    titre: Optional[str] = None
    source: Optional[str] = None
    type: Optional[str] = None


# 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)}