DataEyond/Agentic-Service-Data-Eyond
0
1import os2import hashlib3from openai import AzureOpenAI4from dotenv import load_dotenv5from database.data_schema import KnowledgeChunk6 7load_dotenv()8 9 10def embed_table(table_name: str, columns: list[dict], text: str, user_id: str) -> KnowledgeChunk:11 client = AzureOpenAI(12 api_key=os.getenv("azureai__api_key__embedding"),13 azure_endpoint=os.getenv("azureai__endpoint__url__embedding"),14 api_version=os.getenv("azureai__api__version__embedding"),15 )16 response = client.embeddings.create(17 input=text,18 model=os.getenv("azureai__deployment__name__embedding"),19 )20 embedding = response.data[0].embedding # list[float], 1536 dims21 chunk_id = hashlib.md5(f"database:{user_id}:{table_name}".encode()).hexdigest()22 return KnowledgeChunk(23 id=chunk_id,24 user_id=user_id,25 content=text,26 embedding=embedding,27 source_type="database",28 source_name=table_name,29 metadata={"table_name": table_name, "column_count": len(columns)},30 )31 