jattokatarratto's picture
Upload folder using huggingface_hub
3724ac8 verified
# %%
from pprint import pprint
import httpx
from client_v1.formatting_utils import fixed_width_wrap, format_docs
from client_v1.settings import EmmRetrieversSettings
# %%
settings = EmmRetrieversSettings()
settings.API_BASE
# the test index configuration
TEST_INDEX = "mine_e_emb-rag_live_test_001"
INDEX_MIN = "2024-09-14"
INDEX_MAX = "2024-09-28"
# %%
from client_v1.client import EmmRetrieverV1
# we can build a concrete retriver by specifying all but the actual `query`
# here for example we build a retriver for just a specific date
retriever = EmmRetrieverV1(
settings=settings,
params={"index": TEST_INDEX},
route="/r/rag-minimal/query",
spec={"search_k": 20},
filter={
"max_chunk_no": 1,
"min_chars": 200,
"start_dt": "2024-09-19",
"end_dt": "2024-09-20",
},
)
# %%
EXAMPLE_QUESTION = "What natural disasters are currently occuring?"
docs = retriever.invoke(EXAMPLE_QUESTION)
docs
# %%
# very similar except `metadata` is an attribute
titles = [d.metadata["title"] for d in docs]
print("\n".join([f"- {title}" for title in titles]))
# %%
print(format_docs(docs))
# %%
# Using the gpt@jrc language models
from client_v1.jrc_openai import JRCChatOpenAI
llm_model = JRCChatOpenAI(model="llama-3.1-70b-instruct", openai_api_key=settings.OPENAI_API_KEY.get_secret_value(), openai_api_base=settings.OPENAI_API_BASE_URL)
# %%
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
system_prompt = (
"You are an assistant for question-answering tasks. "
"Use the following pieces of retrieved context to answer "
"the question. If you don't know the answer, say that you "
"don't know."
"\n\n"
"{context}"
)
prompt = ChatPromptTemplate.from_messages(
[
("system", system_prompt),
("human", "{input}"),
]
)
rag_chain = (
{"context": retriever | format_docs, "input": RunnablePassthrough()}
| prompt
| llm_model
)
# %%
r = rag_chain.invoke(EXAMPLE_QUESTION)
print(fixed_width_wrap(r.content))
print("-" * 42)
pprint(r.response_metadata)
# %%
r = rag_chain.invoke("Outline the ongoing Health emergencies in Europe")
print(fixed_width_wrap(r.content))
print("-" * 42)
pprint(r.response_metadata)
# %%