Add template for self-query-qdrant (#12795)

This PR adds a self-querying template using Qdrant as a vector store.
The template uses an artificial dataset and was implemented in a way
that simplifies passing different components and choosing LLM and
embedding providers.

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
This commit is contained in:
Kacper Łukawski
2023-11-03 21:37:29 +01:00
committed by GitHub
parent f41f4c5e37
commit 66c41c0dbf
9 changed files with 2394 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
from string import Formatter
from typing import List
from langchain.schema import Document
document_template = """
PASSAGE: {page_content}
METADATA: {metadata}
"""
def combine_documents(documents: List[Document]) -> str:
"""
Combine a list of documents into a single string that might be passed further down
to a language model.
:param documents: list of documents to combine
:return:
"""
formatter = Formatter()
return "\n\n".join(
formatter.format(
document_template,
page_content=document.page_content,
metadata=document.metadata,
)
for document in documents
)