Spaces:
Sleeping
Sleeping
from langchain import hub | |
from langchain_anthropic import ChatAnthropic | |
from langchain_community.utilities import WikipediaAPIWrapper | |
from langchain_core.output_parsers import StrOutputParser | |
from langchain_core.pydantic_v1 import BaseModel | |
from langchain_core.runnables import RunnableLambda, RunnablePassthrough | |
class Question(BaseModel): | |
__root__: str | |
wiki = WikipediaAPIWrapper(top_k_results=5) | |
prompt = hub.pull("bagatur/chain-of-note-wiki") | |
llm = ChatAnthropic(model="claude-3-sonnet-20240229") | |
def format_docs(docs): | |
return "\n\n".join( | |
f"Wikipedia {i+1}:\n{doc.page_content}" for i, doc in enumerate(docs) | |
) | |
chain = ( | |
{ | |
"passages": RunnableLambda(wiki.load) | format_docs, | |
"question": RunnablePassthrough(), | |
} | |
| prompt | |
| llm | |
| StrOutputParser() | |
).with_types(input_type=Question) | |