python - 如何在文本分割器(langchain)之后将代码分配给文件?

标签 python langchain chatgpt-api llm

我正在使用 Langchain 的 RecursiveCharacterTextSplitter 来分割 python 文件。这样做我会丢失哪个 block 属于哪个文件的信息。 之后如何跟踪各个 block 并将其分配给文件名?

def index_repo(repo_url):

    os.environ['OPENAI_API_KEY'] = ""

    contents = []
    fileextensions = [
        ".py", ]


    print('cloning repo')
    repo_dir = get_repo(repo_url)

    print(repo_dir)

    for dirpath, dirnames, filenames in os.walk(repo_dir):
        for file in filenames:
            if file.endswith(tuple(fileextensions)):
                try:
                    with open(os.path.join(dirpath, file), "r", encoding="utf-8") as f:
                        contents.append(f.read())

                except Exception as e:
                    pass


    # chunk the files
    text_splitter =  RecursiveCharacterTextSplitter.from_language(language=Language.PYTHON, chunk_size=5000, chunk_overlap=0)
    texts = text_splitter.create_documents(contents)

    return texts

最佳答案

create_documents(texts: List[str], metadatas: Optional[List[dict]] = None) → List[Document]

在元数据中添加文件信息并将其传递给create_documents。

关于python - 如何在文本分割器(langchain)之后将代码分配给文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77012240/

相关文章:

python - 内嵌评论 ruamel.yaml

azure - 阻止 AI 在单一响应中继续对话

string - Langchain 加载字符串

python-3.x - 在 ChatGPT OpenAI 中的 Langchain 和 ConversationChain() 中使用自定义 JSON 数据作为上下文

openai-api - ChatGPT - 确定响应是否为 "not unknown"的方法?

python - 如何使用 python 修复字符串中不正确的 html 标签?

python - 如果有某些条件匹配,则合并字典列表?

python - 不提高 I201 和 I202 就无法通过 flake8-import-order

python - 如何继续openai API响应不完整

python - 根据 pandas 中的列和数据透视中的一组查找最大值行