193 lines
8.7 KiB
Plaintext
193 lines
8.7 KiB
Plaintext
|
||
1、GPT Academic 项目结构
|
||
.
|
||
├── Dockerfile
|
||
├── LICENSE
|
||
├── README.md
|
||
├── check_proxy.py
|
||
├── config.py
|
||
├── config_private.py
|
||
├── core_functional.py
|
||
├── crazy_functional.py
|
||
├── crazy_functions
|
||
│ ├── Arxiv_论文对话.py
|
||
│ ├── Conversation_To_File.py
|
||
│ ├── Image_Generate.py
|
||
│ ├── Image_Generate_Wrap.py
|
||
│ ├── Internet_GPT.py
|
||
│ ├── Internet_GPT_Wrap.py
|
||
│ ├── Latex_Function.py
|
||
│ ├── Latex_Function_Wrap.py
|
||
│ ├── Latex全文润色.py
|
||
│ ├── Latex全文翻译.py
|
||
│ ├── Markdown_Translate.py
|
||
│ ├── PDF_Translate.py
|
||
│ ├── PDF_Translate_Wrap.py
|
||
│ ├── Rag_Interface.py
|
||
│ ├── Social_Helper.py
|
||
│ ├── SourceCode_Analyse.py
|
||
│ ├── SourceCode_Comment.py
|
||
│ ├── SourceCode_Comment_Wrap.py
|
||
│ ├── __init__.py
|
||
│ │ ├── auto_agent.py
|
||
│ │ ├── echo_agent.py
|
||
│ │ ├── general.py
|
||
│ │ ├── persistent.py
|
||
│ │ ├── pipe.py
|
||
│ │ ├── python_comment_agent.py
|
||
│ │ ├── python_comment_compare.html
|
||
│ │ └── watchdog.py
|
||
│ ├── ast_fns
|
||
│ │ └── comment_remove.py
|
||
│ ├── chatglm微调工具.py
|
||
│ ├── crazy_utils.py
|
||
│ ├── diagram_fns
|
||
│ │ └── file_tree.py
|
||
│ ├── game_fns
|
||
│ │ ├── game_ascii_art.py
|
||
│ │ ├── game_interactive_story.py
|
||
│ │ └── game_utils.py
|
||
│ ├── gen_fns
|
||
│ │ └── gen_fns_shared.py
|
||
│ ├── ipc_fns
|
||
│ │ └── mp.py
|
||
│ ├── json_fns
|
||
│ │ ├── pydantic_io.py
|
||
│ │ └── select_tool.py
|
||
│ ├── latex_fns
|
||
│ │ ├── latex_actions.py
|
||
│ │ ├── latex_pickle_io.py
|
||
│ │ └── latex_toolbox.py
|
||
│ ├── live_audio
|
||
│ │ ├── aliyunASR.py
|
||
│ │ └── audio_io.py
|
||
│ ├── multi_stage
|
||
│ │ └── multi_stage_utils.py
|
||
│ ├── rag_essay_fns
|
||
│ │ └── multi_stage_utils.py
|
||
│ ├── pdf_fns
|
||
│ │ ├── breakdown_txt.py
|
||
│ │ ├── parse_pdf.py
|
||
│ │ ├── parse_pdf_grobid.py
|
||
│ │ ├── parse_pdf_legacy.py
|
||
│ │ ├── parse_pdf_via_doc2x.py
|
||
│ │ ├── parse_word.py
|
||
│ │ ├── report_gen_html.py
|
||
│ │ ├── report_template.html
|
||
│ │ └── report_template_v2.html
|
||
│ ├── plugin_template
|
||
│ │ └── plugin_class_template.py
|
||
│ ├── prompts
|
||
│ │ └── internet.py
|
||
│ ├── rag_fns
|
||
│ │ ├── llama_index_worker.py
|
||
│ │ ├── milvus_worker.py
|
||
│ │ ├── rag_file_support.py
|
||
│ │ └── vector_store_index.py
|
||
│ ├── vector_fns
|
||
│ │ ├── __init__.py
|
||
│ │ ├── general_file_loader.py
|
||
│ │ └── vector_database.py
|
||
│ ├── vt_fns
|
||
│ │ ├── vt_call_plugin.py
|
||
│ │ ├── vt_modify_config.py
|
||
│ │ └── vt_state.py
|
||
│ ├── 下载arxiv论文翻译摘要.py
|
||
│ ├── 互动小游戏.py
|
||
│ ├── 交互功能函数模板.py
|
||
│ ├── 函数动态生成.py
|
||
│ ├── 命令行助手.py
|
||
│ ├── 多智能体.py
|
||
│ ├── 总结word文档.py
|
||
│ ├── 总结音视频.py
|
||
│ ├── 批量总结PDF文档.py
|
||
│ ├── 批量总结PDF文档pdfminer.py
|
||
│ ├── 批量翻译PDF文档_NOUGAT.py
|
||
│ ├── 数学动画生成manim.py
|
||
│ ├── 理解PDF文档内容.py
|
||
│ ├── 生成函数注释.py
|
||
│ ├── 生成多种Mermaid图表.py
|
||
│ ├── 知识库问答.py
|
||
│ ├── 联网的ChatGPT.py
|
||
│ ├── 联网的ChatGPT_bing版.py
|
||
│ ├── 虚空终端.py
|
||
│ ├── 解析JupyterNotebook.py
|
||
│ ├── 询问多个大语言模型.py
|
||
│ ├── 语音助手.py
|
||
│ ├── 读文章写摘要.py
|
||
│ ├── 谷歌检索小助手.py
|
||
│ ├── 辅助功能.py
|
||
│ └── 高级功能函数模板.py
|
||
├── docker-compose.yml
|
||
├── instruction.txt
|
||
├── main.py
|
||
├── multi_language.py
|
||
├── requirements.txt
|
||
├── shared_utils
|
||
│ ├── advanced_markdown_format.py
|
||
│ ├── char_visual_effect.py
|
||
│ ├── colorful.py
|
||
│ ├── config_loader.py
|
||
│ ├── connect_void_terminal.py
|
||
│ ├── cookie_manager.py
|
||
│ ├── fastapi_server.py
|
||
│ ├── handle_upload.py
|
||
│ ├── key_pattern_manager.py
|
||
│ ├── logging.py
|
||
│ ├── map_names.py
|
||
│ └── text_mask.py
|
||
├── toolbox.py
|
||
└── version
|
||
|
||
2、light_rag的实现方案路径为crazy_functions/rag_fns/LightRAG,主要功能实现文件为operate.py,rag使用到的其他文件为prompt.py、base.py、storage.py、utils.py,请参考实现方案实现插件功能。light_rag的使用案例可以参考crazy_functions/rag_fns/LightRAG/examples路径下的lightrag_hf_demo.py、lightrag_lmdeploy_demo.py:
|
||
路径目录结构为
|
||
|
||
├── README.md
|
||
├── examples
|
||
│ ├── batch_eval.py
|
||
│ ├── generate_query.py
|
||
│ ├── graph_visual_with_html.py
|
||
│ ├── graph_visual_with_neo4j.py
|
||
│ ├── lightrag_azure_openai_demo.py
|
||
│ ├── lightrag_bedrock_demo.py
|
||
│ ├── lightrag_hf_demo.py
|
||
│ ├── lightrag_ollama_demo.py
|
||
│ ├── lightrag_openai_compatible_demo.py
|
||
│ ├── lightrag_openai_demo.py
|
||
│ └── vram_management_demo.py
|
||
├── lightrag
|
||
│ ├── __init__.py
|
||
│ ├── base.py
|
||
│ ├── lightrag.py
|
||
│ ├── llm.py
|
||
│ ├── operate.py
|
||
│ ├── prompt.py
|
||
│ ├── storage.py
|
||
│ └── utils.py
|
||
├── reproduce
|
||
│ ├── Step_0.py
|
||
│ ├── Step_1.py
|
||
│ ├── Step_1_openai_compatible.py
|
||
│ ├── Step_2.py
|
||
│ ├── Step_3.py
|
||
│ └── Step_3_openai_compatible.py
|
||
├── requirements.txt
|
||
└── setup.py
|
||
|
||
|
||
3、我需要开发一个rag插件,请帮我实现一个插件,插件的名称是rag论文总结,插件主入口在crazy_functions/Arxiv_论文对话.py中的Rag论文对话函数,插件的功能步骤分为文件处理和RAG两个步骤
|
||
文件处理步骤流程和要求按顺序如下,请参考gpt_academic已实现的功能复用现有函数即可:
|
||
a. 支持从 arXiv 下载论文源码、检查本地项目路径、扫描 .tex 文件,此步骤可参考crazy_functions/Latex_Function.py。
|
||
b、在项目中找到主要的 LaTeX 文件,将多个 TEX 文件合并成一个大的 TEX 文件,便于统一处理,此步骤可参考crazy_functions/Latex_Function.py。
|
||
c、将合并后的文档进行精细切分,包括读取标题和摘要,此步骤可参考crazy_functions/Latex_Function.py。
|
||
d、将文档按照 token 限制(1024)进行进一步分段,此步骤可参考crazy_functions/Latex_Function.py。
|
||
|
||
3、对于RAG,我希望采用light_rag的方案,参考已有方案其主要的功能实现是:
|
||
主要功能包括:
|
||
e 参考- `chunking_by_token_size`,利用`_handle_entity_relation_summary`函数对d步骤生成的文本块进行实体或关系的摘要。
|
||
f 利用`_handle_single_entity_extraction` 和 `_handle_single_relationship_extraction`:从记录中提取单个实体或关系信息。
|
||
g `_merge_nodes_then_upsert` 和 `_merge_edges_then_upsert`:合并并插入节点或边。
|
||
h `extract_entities`:处理多个文本块,提取实体和关系,并存储在知识图谱和向量数据库中。
|
||
i `local_query`:根据查询提取关键词并生成响应。
|
||
|