Search⌘ K
AI Features

الحل: الانتقال بين مخازن المتجهات

راجع حلول التحديات التي نوقشت في الدرس السابق.

سنغطي ما يلي...

لا بأس إن وجدت هذا التحدي صعبًا! فالانتقال بين الأدوات المختلفة قد يكون معقدًا، وهو جزء أساسي من عملية التعلم. لمساعدتك، وفرنا لك رمز الحل الكامل للانتقال من Chroma إلى Qdrant. استخدمه للمقارنة مع عملك وفهم خطوات هذا التكامل. كل محاولة، ناجحة كانت أم لا، هي خطوة قيّمة نحو إتقان هذه التقنيات المتقدمة. واصل الاستكشاف والتعلم، وتذكر أن المثابرة هي مفتاح النجاح. أنت رائع!

Python 3.10.4
from langchain_community.document_loaders import TextLoader
from langchain_openai import OpenAIEmbeddings
from langchain_qdrant import QdrantVectorStore
from langchain_text_splitters import CharacterTextSplitter
from langchain_core.prompts import PromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
loader = TextLoader("Lakers.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=100)
docs = text_splitter.split_documents(documents)
qdrant = QdrantVectorStore.from_documents(
docs,
embeddings,
location=":memory:", # Local mode with in-memory storage only
collection_name="my_documents",
)
retriever = qdrant.as_retriever()
# Join the retrieved documents into plain text, so the model receives the
# content and not the Document objects' repr
def format_docs(docs):
return "\n\n".join(doc.page_content for doc in docs)
template = """Use the following pieces of context to answer the question at the end.
If you don't know the answer, just say that you don't know, don't try to make up an answer.
Use three sentences maximum and keep the answer as concise as possible.
Always say "thanks for asking!" at the end of the answer.
{context}
Question: {question}
Helpful Answer:"""
custom_rag_prompt = PromptTemplate.from_template(template)
llm = ChatOpenAI(model="gpt-6-sol")
rag_chain = (
{"context": retriever | format_docs, "question": RunnablePassthrough()}
| custom_rag_prompt
| llm
| StrOutputParser()
)
print(rag_chain.invoke("Who joined Lakers in 2018?"))
...