Master 4.0 (#2210)

* stage academic conversation

* stage document conversation

* fix buggy gradio version

* file dynamic load

* merge more academic plugins

* accelerate nltk

* feat: 为predict函数添加文件和URL读取功能
- 添加URL检测和网页内容提取功能,支持自动提取网页文本
- 添加文件路径识别和文件内容读取功能,支持private_upload路径格式
- 集成WebTextExtractor处理网页内容提取
- 集成TextContentLoader处理本地文件读取
- 支持文件路径与问题组合的智能处理

* back

* block unstable

---------

Co-authored-by: XiaoBoAI <liuboyin2019@ia.ac.cn>
这个提交包含在:
binary-husky
2025-08-23 15:59:22 +08:00
提交者 GitHub
父节点 65a4cf59c2
当前提交 8042750d41
共有 79 个文件被更改,包括 20850 次插入57 次删除

查看文件

@@ -0,0 +1,68 @@
from typing import List
from crazy_functions.review_fns.data_sources.base_source import PaperMetadata
class EndNoteFormatter:
"""EndNote参考文献格式生成器"""
def __init__(self):
pass
def create_document(self, papers: List[PaperMetadata]) -> str:
"""生成EndNote格式的参考文献文本
Args:
papers: 论文列表
Returns:
str: EndNote格式的参考文献文本
"""
endnote_text = ""
for paper in papers:
# 开始一个新条目
endnote_text += "%0 Journal Article\n" # 默认类型为期刊文章
# 根据venue_type调整条目类型
if hasattr(paper, 'venue_type') and paper.venue_type:
if paper.venue_type.lower() == 'conference':
endnote_text = endnote_text.replace("Journal Article", "Conference Paper")
elif paper.venue_type.lower() == 'preprint':
endnote_text = endnote_text.replace("Journal Article", "Electronic Article")
# 添加标题
endnote_text += f"%T {paper.title}\n"
# 添加作者
for author in paper.authors:
endnote_text += f"%A {author}\n"
# 添加年份
if paper.year:
endnote_text += f"%D {paper.year}\n"
# 添加期刊/会议名称
if hasattr(paper, 'venue_name') and paper.venue_name:
endnote_text += f"%J {paper.venue_name}\n"
elif paper.venue:
endnote_text += f"%J {paper.venue}\n"
# 添加DOI
if paper.doi:
endnote_text += f"%R {paper.doi}\n"
endnote_text += f"%U https://doi.org/{paper.doi}\n"
elif paper.url:
endnote_text += f"%U {paper.url}\n"
# 添加摘要
if paper.abstract:
endnote_text += f"%X {paper.abstract}\n"
# 添加机构
if hasattr(paper, 'institutions'):
for institution in paper.institutions:
endnote_text += f"%I {institution}\n"
# 条目之间添加空行
endnote_text += "\n"
return endnote_text