LLM+PubMed小助手

前言

最近参加一个集训,和团队的小伙伴选择了一个关于搭建生物问答助手的AI题目,由于本人并非人工智能专业,不会训练模型,只知道一些简单的python知识,为了完成任务在网上好一阵找。终于发现了一个宝藏仓库,GPT学术优化
![[Pasted image 20240330171549.png]]
作者对这个项目的描述:为GPT/GLM等LLM大语言模型提供实用化交互接口,特别优化论文阅读/润色/写作体验,模块化设计,支持自定义快捷按钮&函数插件,支持Python和C++等项目剖析&自译解功能,PDF/LaTex论文翻译&总结功能,支持并行问询多种LLM模型,支持chatglm3等本地模型。接入通义千问, deepseekcoder, 讯飞星火, 文心一言, llama2, rwkv, claude2, moss等。
体验之后感觉确实不错,作者把框架也搭的差不多,有其他想要实现的功能可以通过自己写插件实现。(门槛不高,了解一些python就可以)
该项目有一个关于谷歌学术的插件,但是通过爬虫来实现的。我想能否通过调用Pubmed的api来自己完成一个插件,通过输入指定的keywords,便能够在在数据库中进行搜索,获取文献相关信息。

PubMed小助手

准备

  • Pubmed API
  • LLM API
  • 所需python包requirements.txt

代码部分(主要内容)

def Get_Pubmed(keyword, chatbot, history):
    from metapub import PubMedFetcher
    fetch = PubMedFetcher()
    num_of_articles = 5
    pmids = fetch.pmids_for_query(keyword, retmax=num_of_articles)
    print(pmids)
    cnt = 1
    for pmid in pmids:
        print(pmid)
        article_info = {}
        try:
            article = fetch.article_by_pmid(pmid)
            article_info = {
                "pmid": pmid,
                "Title": article.title,
                "Abstract": article.abstract,
                "Author": article.authors,
                "Journal": article.journal,
                "Citation": article.citation,
                "Year": article.year,
                "Issue": article.issue,
                "Link": "https://pubmed.ncbi.nlm.nih.gov/" + pmid + "/",
                "Doi": article.doi,
            }

            chatbot[-1] = [

                chatbot[-1][0],
                f"Successfully fetched article with PMID {pmid}, {cnt}/{num_of_articles}",
            ]
            cnt += 1
            # yield from update_ui(chatbot=chatbot, history=[])
        except Exception as e:
            chatbot[-1] = [
                chatbot[-1][0],
                f"Error fetching article with PMID {pmid}: {e}, {cnt}/{num_of_articles}",

            ]
            yield from update_ui(chatbot=chatbot, history=[])
            cnt += 1
            continue
        yield article_info  # Yield the information of one article at a time

通过以上代码获取文献相关信息。
接下来调用LLM的API,再通过指定的prompt将信息输入给大模型,即可得到我们想要的结果。
![[QQ2024327-173958-HD第二版 (online-video-cutter.com).gif]]

结尾

代码小白,能力有限,欢迎大家指导,完整代码在GitHub仓库

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发誓要做读书人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值