445-bot / vectorstore /embedder.py
HokieBird's picture
Deploy ENGR 445 RAG System to HF Spaces (chroma_db stored separately in HF dataset)
4b31891
"""
Embed text using Ollama's embedding API.
"""
import requests
from typing import List
from config import OLLAMA_BASE_URL, EMBEDDING_MODEL
def embed_texts(texts: List[str]) -> List[List[float]]:
"""
Embed a list of texts using Ollama.
Args:
texts: List of text strings to embed
Returns:
List of embedding vectors
"""
embeddings = []
for text in texts:
try:
resp = requests.post(
f"{OLLAMA_BASE_URL}/api/embeddings",
json={"model": EMBEDDING_MODEL, "prompt": text}
)
resp.raise_for_status()
embeddings.append(resp.json()["embedding"])
except Exception as e:
print(f"Warning: Failed to embed text: {e}")
# Return a zero vector of appropriate size as fallback
# nomic-embed-text produces 768-dimensional vectors
embeddings.append([0.0] * 768)
return embeddings
def main():
"""Test function to verify embedding works correctly."""
print("Embedder module ready for use.")
if __name__ == "__main__":
main()