ashish1265659565's picture
Upload folder using huggingface_hub
08fd094 verified
Raw
History Blame Contribute Delete
1.46 kB
from fastapi import APIRouter, HTTPException
from app.integrations.ollama import get_chunking_ollama
from app.schemas.chunking import (
ChunkEmbedRequest,
ChunkEmbedResponse,
ChunkEmbeddingResult,
ChunkPreviewRequest,
ChunkPreviewResponse,
)
from app.services.heuristics import ScientificChunker
router = APIRouter(prefix="/chunking", tags=["chunking"])
chunker = ScientificChunker()
@router.post("/preview", response_model=ChunkPreviewResponse)
def preview_chunks(payload: ChunkPreviewRequest) -> ChunkPreviewResponse:
chunks = chunker.preview(payload)
return ChunkPreviewResponse(chunk_count=len(chunks), chunks=chunks)
@router.post("/embed", response_model=ChunkEmbedResponse)
def embed_chunks(payload: ChunkEmbedRequest) -> ChunkEmbedResponse:
ollama = get_chunking_ollama()
if not ollama.settings.enabled:
raise HTTPException(status_code=503, detail="Ollama embedding is disabled.")
if not ollama.available:
raise HTTPException(status_code=503, detail="Ollama is not reachable.")
results: list[ChunkEmbeddingResult] = []
for text in payload.texts:
vector = ollama.embed(text)
results.append(
ChunkEmbeddingResult(
text=text,
embedding=vector,
embedding_model=ollama.settings.embedding_model,
dimensions=len(vector),
)
)
return ChunkEmbedResponse(embeddings=results)