Spaces:
Sleeping
Sleeping
| from db.qdrant import save_embeddings | |
| from services.resource_manager import get_model | |
| import asyncio | |
| def generate_embeddings(chunks): | |
| chunks_text = [chunk['content'] for chunk in chunks] | |
| # Load the pre-trained model | |
| model = get_model() | |
| # Generate embeddings for each chunk of text | |
| embeddings = model.encode(chunks_text) | |
| return embeddings | |
| def embed_question(question): | |
| model = get_model() | |
| bge_query = "Represent this sentence for searching relevant passages: " + question[:500] # Truncate to 500 chars to fit model limits | |
| embedding = model.encode([bge_query]) | |
| return embedding | |
| async def process_embeddings_background(chunks, document_id, qdrant): | |
| print(f"Starting background embedding for {document_id}...", flush=True) | |
| try: | |
| embeddings = await asyncio.to_thread(generate_embeddings, chunks) | |
| await save_embeddings(embeddings, chunks, document_id, qdrant) | |
| print(f"Background embedding complete for {document_id}", flush=True) | |
| except Exception as e: | |
| print(f"Background embedding failed: {e}", flush=True) |