Second
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user