Skapa en RAG-kedja
Nu är det dags att sätta ihop alla komponenter i ditt RAG-arbetsflöde! Du har förberett dokumenten och läst in dem i en Chroma-databas för hämtning. Du skapade också en promptmall för att inkludera de hämtade textavsnitten från den vetenskapliga artikeln och besvara frågor.
Promptmallen du skapade i föregående övning finns tillgänglig som prompt_template, en OpenAI-modell har initierats som llm, och koden för att återskapa din retriever finns med i skriptet.
Den här övningen är en del av kursen
Utveckla LLM-applikationer med LangChain
Övningsinstruktioner
- Skapa en LCEL-kedja med pipe-operatorn (
|) för att koppla sammanretriever,prompt_templateochllmi sekvens. - Kedjan ska mappa retrievern till
"context"och användarinput till"question". - Anropa kedjan med metoden
.invoke()på den angivna frågan.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)