This commit is contained in:
ki.sagidullin
2026-03-31 23:31:09 +05:00
parent 2ae08db4b2
commit 0af4730b3c
4 changed files with 152 additions and 142 deletions

View File

@@ -1,6 +1,8 @@
import os
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct
from langchain_community.document_loaders import TextLoader, PyPDFLoader, DirectoryLoader
from langchain.text_splitter import Language
class LocalKnowledgeBase:
def __init__(self, collection_name="documents", persist_dir="./qdrant_data"):
@@ -37,6 +39,11 @@ class LocalKnowledgeBase:
'.pdf': PyPDFLoader,
'.txt': lambda path: DirectoryLoader(path, glob="**/*.txt"),
'.docx': lambda path: DirectoryLoader(path, glob="**/*.docx"),
'.hpp': lambda path: TextLoader(path, encoding='utf-8'),
'.cpp': lambda path: TextLoader(path, encoding='utf-8'), # добавить
'.h': lambda path: TextLoader(path, encoding='utf-8'), # добавить
'.cc': lambda path: TextLoader(path, encoding='utf-8'), # добавить
}
all_documents = []
@@ -54,7 +61,8 @@ class LocalKnowledgeBase:
print(f"Ошибка загрузки {file_path}: {e}")
# Разбиваем на чанки
text_splitter = RecursiveCharacterTextSplitter(
text_splitter = RecursiveCharacterTextSplitter.from_language(
language=Language.CPP,
chunk_size=1000,
chunk_overlap=200,
length_function=len
@@ -82,7 +90,8 @@ class LocalKnowledgeBase:
payload={
"text": doc.page_content,
"source": doc.metadata.get("source", "unknown"),
"page": doc.metadata.get("page", 0)
"page": doc.metadata.get("page", 0),
"file_type": "cpp"
}
)
points.append(point)