菜单

核心插件

相关源文件

核心插件是 GPT Academic 系统功能的基本构建块。与可能涉及多个步骤或外部处理的更复杂的插件不同,核心插件主要通过在发送给语言模型之前添加预定义的提示(前缀和后缀)来转换用户输入。

有关开发自定义插件的信息,请参阅 插件开发。有关特定于学术的插件,请参阅 学术插件

核心插件架构

核心插件在 core_functional.py 中定义为一个插件配置字典。每个插件都有其独特purpose,并旨在高效处理特定的文本处理任务。

核心插件结构

注册表中的每个核心插件都具有以下属性

  • Prefix:添加到用户输入前面的文本
  • Suffix:附加到用户输入的文本
  • Color:UI 中的按钮颜色(例如,“secondary”)
  • Visible:插件是否显示在 UI 中(默认:True
  • AutoClearHistory:调用时是否清除聊天记录(默认:False
  • PreProcess:转换用户输入的可选函数
  • ModelOverride:用于替代全局模型的可选模型

来源:core_functional.py10-147

处理流程

当用户选择一个核心插件时,handle_core_functionality() 函数会处理输入

来源:core_functional.py150-171

基于语言的文本掩码

核心插件可以利用文本掩码系统,根据用户的语言显示不同的提示。这是通过使用指定英语和中文用户不同文本版本的特殊标签来实现的。

掩码系统在 shared_utils/text_mask.py 中实现,并使用类似 XML 的标签

<gpt_academic_string_mask>
  <lang_english>English text</lang_english>
  <lang_chinese>Chinese text</lang_chinese>
</gpt_academic_string_mask>

该系统会自动检测用户输入的语言并选择相应的提示文本。

来源:shared_utils/text_mask.py53-94 core_functional.py16-26 core_functional.py99-116

可用的核心插件

系统中包含以下核心插件

学术文本润色

通过增强语法、清晰度和可读性来改进学术写作。

特性

  • 对英语和中文文本使用不同的提示
  • 提供全面的写作改进建议
  • 以带有解释的 Markdown 表格形式呈现修改

来源:core_functional.py13-38

总结绘制脑图

生成输入文本的可视化摘要,作为 mermaid 流程图。

特性

  • 创建概念的分层表示
  • 可视化思想之间的关系
  • 以 mermaid 流程图格式输出

来源:core_functional.py41-68

查找语法错误

识别文本中的语法和拼写错误。

特性

  • 以双栏 Markdown 表格格式呈现更正
  • 突出显示特定错误及其更正
  • 提供完全校对的文本

来源:core_functional.py71-89

翻译功能

提供多种翻译插件

  1. 中文到英文翻译
    • 简单的中译英翻译
  2. 学术英汉互译
    • 双向翻译,侧重学术
    • 适应检测到的输入语言
    • 保持术语的精确性
  3. 英文到中文翻译
    • 简单的英译中翻译
    • 默认隐藏(UI 中不可见)

来源:core_functional.py92-123

找图片

根据文本描述检索图片。

特性

  • 使用 Unsplash API 查找相关图片
  • 以 Markdown 格式返回结果,方便显示
  • 默认隐藏(UI 中不可见)

来源:core_functional.py126-131

解释代码

提供代码片段的详细解释。

特性

  • 将代码包装在 Markdown 代码块中
  • 解释功能、逻辑和目的
  • 帮助用户理解复杂代码

来源:core_functional.py134-137

参考文献转Bib

将学术参考文献转换为 BibTeX 格式。

特性

  • 处理多种参考文献样式
  • 将引文转换为标准化的 BibTeX 条目
  • 默认隐藏(UI 中不可见)

来源:core_functional.py140-146

自定义核心插件

系统允许定义自定义核心插件。自定义插件可以添加到 customize_fn_overwrite cookie 中,以覆盖或扩展内置功能。

当激活一个核心插件时,系统会首先检查它是否存在于自定义插件注册表中。如果找到,则使用自定义定义;否则,它会回退到内置定义。

来源:core_functional.py150-171

与 UI 集成

核心插件作为按钮集成到 Gradio UI 中,用户可以单击这些按钮来激活特定的功能。每个插件中定义的属性(例如 ColorVisible)控制这些按钮在界面中的外观。

当单击插件按钮时,它会触发上述的处理流程,在将用户输入发送到语言模型之前,将其应用于用户输入。

来源:core_functional.py28-37