File size: 939 Bytes
c0f74f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
import sys

project_root = os.path.abspath(os.path.join(os.getcwd(), os.pardir, os.pardir))

sys.path.insert(0, project_root)

from models.llm import get_llm
from langchain_core.prompts import ChatPromptTemplate

def answer_node(state):
    question = state["messages"][-1].content
    document = state["documents"]
    context = "\n\n----\n\n".join([docs.page_content for docs in document])
    
    api_key = state.get("api_key")
    if not api_key:
        
         raise ValueError("API Key not found in state.")

    model = get_llm(api=api_key)
    
    prompt = ChatPromptTemplate.from_messages([
        ("system","Your job is to provide a concise answer to the user query from the provided context: {context}"),
        ("user","{query}")
    ])

    answer_chain = prompt|model

    response = answer_chain.invoke({"query":question,"context":context})

    return {"messages":[response]}