การโหลดและแบ่งไฟล์โค้ด

Retrieval Augmented Generation (RAG) ด้วย LangChain

Meri Nova

Machine Learning Engineer

Document Loader อื่น ๆ...

รูปแบบไฟล์ต่าง ๆ

Retrieval Augmented Generation (RAG) ด้วย LangChain

Markdown ดิบที่ใช้สร้างไฟล์ README ใน GitHub repository ของ LangChain

Retrieval Augmented Generation (RAG) ด้วย LangChain

Markdown ที่เรนเดอร์แล้วจากไฟล์ README.md ของ LangChain บน GitHub

Retrieval Augmented Generation (RAG) ด้วย LangChain

การโหลดไฟล์ Markdown (.md)

from langchain_community.document_loaders import UnstructuredMarkdownLoader

loader = UnstructuredMarkdownLoader("README.md")
markdown_content = loader.load() print(markdown_content[0])
Document(page_content='# Discord Text Classification ![Python Version](https...'
         metadata={'source': 'README.md'})
Retrieval Augmented Generation (RAG) ด้วย LangChain

การโหลดไฟล์ Python (.py)

from abc import ABC, abstractmethod

class LLM(ABC):
  @abstractmethod
  def complete_sentence(self, prompt):
    pass

...
  • นำไปใช้ในแอปพลิเคชัน RAG สำหรับเขียนหรือแก้ไขโค้ด สร้างเอกสาร ฯลฯ
  • Imports, คลาส, ฟังก์ชัน ฯลฯ
from langchain_community.document_loaders \
    import PythonLoader

loader = PythonLoader('chatbot.py')

python_data = loader.load() print(python_data[0])
Document(page_content='from abc import ABC, ...

class LLM(ABC):
  @abstractmethod
...',
metadata={'source': 'chatbot.py'})
Retrieval Augmented Generation (RAG) ด้วย LangChain

การแบ่งไฟล์โค้ด

python_splitter = RecursiveCharacterTextSplitter(
    chunk_size=150, chunk_overlap=10
)

chunks = python_splitter.split_documents(python_data) for i, chunk in enumerate(chunks[:3]): print(f"Chunk {i+1}:\n{chunk.page_content}\n")
Retrieval Augmented Generation (RAG) ด้วย LangChain
Chunk 1:
from abc import ABC, abstractmethod

class LLM(ABC):
  @abstractmethod
  def complete_sentence(self, prompt):
    pass

Chunk 2:
class OpenAI(LLM):
  def complete_sentence(self, prompt):
    return prompt + " ... OpenAI end of sentence."

class Anthropic(LLM):

Chunk 3:
def complete_sentence(self, prompt):
    return prompt + " ... Anthropic end of sentence."

Retrieval Augmented Generation (RAG) ด้วย LangChain

การแบ่งตามภาษา

  • separators
    • ["\n\n", "\n", " ", ""]
    • ["\nclass ", "\ndef ", "\n\tdef ", "\n\n", " ", ""]
from langchain_text_splitters import RecursiveCharacterTextSplitter, Language

python_splitter = RecursiveCharacterTextSplitter.from_language(

language=Language.PYTHON, chunk_size=150, chunk_overlap=10
)
chunks = python_splitter.split_documents(data)
for i, chunk in enumerate(chunks[:3]): print(f"Chunk {i+1}:\n{chunk.page_content}\n")
Retrieval Augmented Generation (RAG) ด้วย LangChain
Chunk 1:
from abc import ABC, abstractmethod

Chunk 2:
class LLM(ABC):
  @abstractmethod
  def complete_sentence(self, prompt):
    pass

Chunk 3:
class OpenAI(LLM):
  def complete_sentence(self, prompt):
Retrieval Augmented Generation (RAG) ด้วย LangChain

มาฝึกกันเถอะ!

Retrieval Augmented Generation (RAG) ด้วย LangChain

Preparing Video For Download...