Gemini论文研究助手

基于Spring AI和Google Gemini的论文研究助手,提供论文搜索、保存和监控功能。

  • by kimsy98
  • Java
  • 本地部署
  • 更新于

使用说明

实现平台(“org.springframework.ai:spring-ai bom:1.1.2”) 需要添加依赖性(https://start.spring.io/方式最准确)

实现org.springframework.ai:spring-ai启动模型google-genai 构建时需要设置yml(除非放入才能使用Gemini开发者API,否则以Vertex AI方式捕获时出错)

spring:
  ai:
    google:
      genai:
        api-key: {$API_KEY}
        chat:
          options:
            model: gemini-1.5-flash
            temperature: 0.5

稍后将启动mcp服务器

  • 第一个目标:收集和整理资料并保存
  • 第二个目标:连接toneup服务后,在日志异常时通过解码或Telegram发送监控功能

arxiv-mcp-server(论文搜索mcp服务器)下载和运行方法窗口

https://github.com/blazickjp/arxiv-mcp-server

mcp服务器联动方式有yml连接方式或json文件联动方式两种

  • 打开powershell-ExecutionPolicy ByPass-c“irmhttps://astral.sh/uv/install.ps1| iex“(安装uv命令)
  • 关闭电源壳并确认uv--version
  • uv tool install arxiv-mcp-server(安装mcp服务器)
  • application.yml配置弹簧启动时自动将服务器上传并连接
       spring:
          ai:
            mcp:
             client:
              stdio:
                connections:
                  arxiv-researcher:
                    command: cmd
                    args:
                      - "/c"
                      - "uv"
                      - "tool"
                      - "run"
                      - "arxiv-mcp-server"
                      - "--storage-path"
                      - "C:/Users/gkstj/Desktop/mcp/mcp/papers" # 파일 저장 위치
    

创建chatclient空时设置defaultSystem Persona、注入defaultToolCallbacks mcp服务器、记住defaultAdvisors对话上下文

  • SyncMcpToolCallbackProvider:自动将MCP服务器提供的工具(例如arxiv_search、save_file)转换为Spring AI可以理解的FunctionCallback形式
  • MessageChatMemoryAdvisor:每次对话时自动在提示符中包含前一条消息的角色
  • MessageWindowChatMemory:*Window方式:不是无限期地记住,而是只将最新的N条消息放在“窗口”中记住 默认存储库:如果没有单独的设置,则使用**服务器的RAM(InMemory)**(需要db联动以排除先前导入的资料)