DocuDoodle / gemini_embedding.py
MahatirTusher's picture
Upload 6 files
a7094fa verified
import os
from chromadb.api.types import Documents, Embeddings
from chromadb import EmbeddingFunction
from mistralai.client import MistralClient # Import Mistral client
# Hardcoded Mistral API key (NOT RECOMMENDED for production)
MISTRAL_API_KEY = "9x8duC1VJ7n5uEwdV8nG6bmFEIqCftKn"
# Initialize Mistral client
mistral_client = MistralClient(api_key=MISTRAL_API_KEY)
class MistralEmbeddingFunction(EmbeddingFunction):
"""
Custom embedding function using Mistral AI API.
"""
def __call__(self, input: Documents) -> Embeddings:
if not MISTRAL_API_KEY:
raise ValueError("Mistral API Key not provided. Please set MISTRAL_API_KEY as an environment variable.")
embeddings = []
for text in input:
# Generate embeddings using Mistral's API
response = mistral_client.embeddings.create(
model="mistral-embed", # Mistral's embedding model
input=text
)
embeddings.append(response.data[0].embedding)
return embeddings