LangChain Expression Language (LCEL) (tiếp tục)
Ví dụ 5: Sử dụng LCEL với cái giành
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema.runnable import RunnableParallel, RunnablePassthrough
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.schema.output_parser import StrOutputParser
## Load existing Vector DB FAISS, that we created in the section “Create a Vector Store (Local Vector Store)”
embedding_model = AzureOpenAI(deployment_name=”dp-text-embedding-ada-002″, model_name=”text-embedding-ada-002″)
vectorstore = FAISS.load_local(“/content/faiss_store/”,embedding_model, allow_dangerous_deserialization=True)
# Adding New Data
new_texts = [“harrison worked at google”, “harrison likes spicy food”]
vectorstore.add_texts(new_texts)
retriever = vectorstore.as_retriever()
template = “””Answer the question based only on thefollowing context: {context}
Question: {question}
“””prompt = ChatPromptTemplate.from_template(template)
model = llm
chain = (RunnableParallel(
{“context”: retriever, “question”: RunnablePassthrough()}
)
| prompt
| model
| StrOutputParser())
chain.invoke(“where did harrison work?”)
Output:
Google.
Code này minh họa làm cách nào load CSDL vector FAISS hiện có trước, thêm data text mới vào nó, và tạo
một dòng ống trả lời câu hỏi dựa trên giành sử dụng LangChain. Nó kết hợp giành bối cảnh phù hợp từ CSDL
vector với một mẫu prompt và một LLM để trả lời một câu hỏi dựa trên hoàn toàn bối cảnh được giành.
