33import logging
44from dotenv import load_dotenv
55from langchain_community .document_loaders import DirectoryLoader
6+ from langchain_community .document_loaders import GithubFileLoader
67from langchain .text_splitter import RecursiveCharacterTextSplitter
78from langchain .schema import Document
89from langchain_google_genai import GoogleGenerativeAIEmbeddings
1718
1819CHROMA_DB_PATH = os .getenv ("CHROMA_PATH" )
1920DATA_STORE_PATH = os .getenv ("DATA_STORE_PATH" )
21+ GITHUB_TOKEN = os .getenv ("GITHUB_TOKEN" )
2022EMBEDDING_MODEL_NAME = "models/text-embedding-004"
2123CHUNK_SIZE = 1000
2224CHUNK_OVERLAP = 500
@@ -36,7 +38,13 @@ def load_documents(directory: str) -> list[Document]:
3638 logging .info (f"Loading documents from: { directory } " )
3739 if not os .path .exists (directory ):
3840 raise FileNotFoundError (f"Directory not found: { directory } " )
39- loader = DirectoryLoader (directory , glob = "**/*.md" )
41+ # loader = DirectoryLoader(directory, glob="**/*.md")
42+ loader = GithubFileLoader (
43+ repo = "rndmcodeguy20/model-builder" ,
44+ branch = "master" ,
45+ file_filter = lambda file_path : file_path .endswith (".md" ) and file_path .startswith ("docs/" ),
46+ access_token = GITHUB_TOKEN ,
47+ )
4048 documents = loader .load ()
4149 logging .info (f"Loaded { len (documents )} documents from: { directory } " )
4250 return documents
0 commit comments