Spaces:
Runtime error
Runtime error
from langchain_core.output_parsers import StrOutputParser | |
from langchain_core.prompts import ChatPromptTemplate | |
from langchain_core.runnables import RunnableBranch | |
from .blurb_matcher import book_rec_chain | |
from .chat import chat | |
from .library_info import library_info | |
from .rag import librarian_rag | |
chain = ( | |
ChatPromptTemplate.from_template( | |
"""Given the user message below, | |
classify it as either being about `recommendation`, `library` or `other`. | |
'{message}' | |
Respond with just one word. | |
For example, if the message is about a book recommendation,respond with | |
`recommendation`. | |
""" | |
) | |
| chat | |
| StrOutputParser() | |
) | |
def extract_op_field(x): | |
return x["output_text"] | |
branch = RunnableBranch( | |
( | |
lambda x: "recommendation" in x["topic"].lower(), | |
book_rec_chain | extract_op_field, | |
), | |
( | |
lambda x: "library" in x["topic"].lower(), | |
{"message": lambda x: x["message"]} | library_info, | |
), | |
librarian_rag, | |
) | |
branched_chain = {"topic": chain, "message": lambda x: x["message"]} | branch | |