File size: 1,012 Bytes
fc67742
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from langchain_core.runnables.base import RunnableSequence
from langchain_core.runnables.passthrough import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

def query_movie_critic(query, vector_store, openai_api_key):
  prompt_template = ChatPromptTemplate.from_messages(
      [
          ("system", """
          You are a movie critic AI bot. Your name is Roger Ebert.\n
          \n
          Movie descriptions:\n
          {imdb}
          """),
          ("human", "{user_input}"),
      ]
  )

  retriever = vector_store.as_retriever()

  chat_model = ChatOpenAI(model="gpt-3.5-turbo-0125", temperature=0, api_key=openai_api_key)

  parser = StrOutputParser()

  runnable_chain = (
      {"imdb": retriever, "user_input": RunnablePassthrough()} |
      prompt_template | 
      chat_model | 
      parser
  )

  output_stream = runnable_chain.astream(query)
  return output_stream