Tworzenie łańcucha RAG
Czas połączyć wszystkie komponenty w swoim przepływie pracy RAG! Przygotowano dokumenty i załadowano je do bazy danych Chroma na potrzeby wyszukiwania. Utworzono też szablon promptu, który uwzględnia pobrane fragmenty artykułu naukowego i umożliwia odpowiadanie na pytania.
Szablon promptu utworzony w poprzednim ćwiczeniu jest dostępny jako prompt_template, model OpenAI został zainicjalizowany jako llm, a kod do odtworzenia retriever został dołączony do skryptu.
To ćwiczenie jest częścią kursu
Tworzenie aplikacji LLM z LangChain
Instrukcje do ćwiczenia
- Utwórz łańcuch LCEL, używając operatora potoku (
|), aby połączyć kolejnoretriever,prompt_templateillm. - Łańcuch powinien przypisywać retriever do
"context", a dane wejściowe użytkownika do"question". - Wywołaj łańcuch, używając metody
.invoke()na podanym pytaniu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)