import os from dotenv import load_dotenv from qdrant_client import QdrantClient from langchain_openai import OpenAIEmbeddings, ChatOpenAI from langchain_qdrant import Qdrant # Load environment variables load_dotenv() # Initialize Qdrant client qdrant_api_key = os.getenv("QDRANT_API_KEY") qdrant_client = QdrantClient( url="https://9266da83-dbfe-48d6-b2d8-cdf101299284.europe-west3-0.gcp.cloud.qdrant.io", api_key=qdrant_api_key ) # Initialize OpenAI openai_api_key = os.getenv("OPENAI_API_KEY") embeddings = OpenAIEmbeddings(model="text-embedding-3-small", openai_api_key=openai_api_key) llm = ChatOpenAI(temperature=0, openai_api_key=openai_api_key) # Initialize vector store collection_name = "ai_info_collection" vector_store = Qdrant( client=qdrant_client, collection_name=collection_name, embeddings=embeddings, ) def generate_answer(query): docs = vector_store.similarity_search(query, k=3) context = "\n".join(doc.page_content for doc in docs if doc.page_content) prompt = f"Based on the following context, answer the question: {query}\n\nContext: {context}" response = llm.invoke(prompt) return response.content