Crearea unui lanț RAG
Acum e momentul să reunești toate componentele în fluxul tău de lucru RAG! Ai pregătit documentele și le-ai încărcat într-o bază de date Chroma pentru recuperare. Ai creat un șablon de prompt care include fragmentele extrase din articolul academic și răspunde la întrebări.
Șablonul de prompt creat în exercițiul anterior este disponibil ca prompt_template, un model OpenAI a fost inițializat ca llm, iar codul pentru recrearea retriever-ului tău a fost inclus în script.
Acest exercițiu face parte din cursul
Developing LLM Applications with LangChain
Instrucțiuni pentru exercițiu
- Creează un lanț LCEL folosind operatorul pipe (
|) pentru a conectaretriever,prompt_templateșillmîn secvență. - Lanțul trebuie să mapeze retriever-ul la
"context"și inputul utilizatorului la"question". - Invocă lanțul folosind metoda
.invoke()pe întrebarea furnizată.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
vectorstore = Chroma.from_documents(
docs,
embedding=OpenAIEmbeddings(api_key='', model='text-embedding-3-small'),
persist_directory=os.getcwd()
)
retriever = vectorstore.as_retriever(
search_type="similarity",
search_kwargs={"k": 3}
)
# Create a chain to link retriever, prompt_template, and llm
rag_chain = ({"context": ____, "question": ____}
| prompt_template
| llm)
# Invoke the chain
response = rag_chain.____("Which popular LLMs were considered in the paper?")
print(response.content)