code: import os
  import weaviate
  import key_config
  
  import langchain
  from langchain.vectorstores import Weaviate
  from langchain.chains import ConversationalRetrievalChain
  from langchain.memory import ConversationSummaryMemory
  from langchain.chat_models import ChatOpenAI
  from langchain.embeddings import OpenAIEmbeddings
  
  client = weaviate.Client(os.environ.get("WEAVIATE_URL"))
  print(f"+++Weaviate is ready? {client.is_ready()}")
  
  embeddings = OpenAIEmbeddings(model="text-embedding-ada-002")
  
  model = ChatOpenAI(model="gpt-3.5-turbo-0613", temperature=0, max_tokens=1024)
  vectorstore = Weaviate(
      client=client,
      index_name="Algos",
      embedding=embeddings,
      text_key="text",
      by_text=False,
  )
  print(f"+++Vector BD indext name: {vectorstore._index_name}")
  # print(vectorstore._client.schema.get())
  
  # query = "what is the value change on the input parameter of PlanAndExecute?"
  # query = "What is the logic of generating off spring by the 1st input paramaters in cross method of SinglePointCrossover?"
  query = "describe the purpose SinglePointCrossover?"
  docs = vectorstore.similarity_search(query)
  print(f"+++Similarity Search: {docs}")
  
  langchain.debug = True
  retriever = vectorstore.as_retriever()
  memory = ConversationSummaryMemory(
      llm=model, memory_key="chat_history", return_messages=True
  )
  qa = ConversationalRetrievalChain.from_llm(model, retriever=retriever, memory=memory)
  # result = qa(query)
  result = qa({"question": query, "chat_history": []})
  print(f"+++Conversational Search: {result['answer']}")
  
apis: langchain.chains.ConversationalRetrievalChain.from_llm langchain.chat_models.ChatOpenAI langchain.vectorstores.Weaviate langchain.embeddings.OpenAIEmbeddings langchain.memory.ConversationSummaryMemory
extract_api: [((438, 486), 'langchain.embeddings.OpenAIEmbeddings', 'OpenAIEmbeddings', ([], {'model': '"""text-embedding-ada-002"""'}), "(model='text-embedding-ada-002')\n", (454, 486), False, 'from langchain.embeddings import OpenAIEmbeddings\n'), ((496, 566), 'langchain.chat_models.ChatOpenAI', 'ChatOpenAI', ([], {'model': '"""gpt-3.5-turbo-0613"""', 'temperature': '(0)', 'max_tokens': '(1024)'}), "(model='gpt-3.5-turbo-0613', temperature=0, max_tokens=1024)\n", (506, 566), False, 'from langchain.chat_models import ChatOpenAI\n'), ((581, 683), 'langchain.vectorstores.Weaviate', 'Weaviate', ([], {'client': 'client', 'index_name': '"""Algos"""', 'embedding': 'embeddings', 'text_key': '"""text"""', 'by_text': '(False)'}), "(client=client, index_name='Algos', embedding=embeddings, text_key=\n    'text', by_text=False)\n", (589, 683), False, 'from langchain.vectorstores import Weaviate\n'), ((1218, 1307), 'langchain.memory.ConversationSummaryMemory', 'ConversationSummaryMemory', ([], {'llm': 'model', 'memory_key': '"""chat_history"""', 'return_messages': '(True)'}), "(llm=model, memory_key='chat_history',\n    return_messages=True)\n", (1243, 1307), False, 'from langchain.memory import ConversationSummaryMemory\n'), ((1315, 1400), 'langchain.chains.ConversationalRetrievalChain.from_llm', 'ConversationalRetrievalChain.from_llm', (['model'], {'retriever': 'retriever', 'memory': 'memory'}), '(model, retriever=retriever, memory=memory\n    )\n', (1352, 1400), False, 'from langchain.chains import ConversationalRetrievalChain\n'), ((340, 370), 'os.environ.get', 'os.environ.get', (['"""WEAVIATE_URL"""'], {}), "('WEAVIATE_URL')\n", (354, 370), False, 'import os\n')]