1 安装ollama
点击前往网站 https://ollama.com/ ,下载ollama软件,支持win、Mac、linux
2 下载LLM
ollama软件目前支持多种大模型, 如阿里的(qwen、qwen2)、meta的(llama3、llama3.1), 读者根据自己电脑配置下载相应的模型。
以llama3.1为例,根据自己电脑显存性能, 选择适宜的版本。如果不知道选什么,那就试着安装,不合适不能用再删除即可。打开电脑命令行cmd(mac是terminal), 网络是连网状态,执行模型下载(安装)命令
python
ollama run llama3.1
3 安装python包
在python中调用ollama服务,需要ollama包。
打开电脑命令行cmd(mac是terminal), 网络是连网状态,执行安装命令
python
pip install ollama
4启动ollama服务
在Python中调用本地ollama服务,需要先启动本地ollama服务, 打开电脑命令行cmd(mac是terminal), 执行
python
ollama serve
5 设计提示词
该提示存储在scientific_papers_prompt.txt 中
python
科学研究论文:
---
{document}
---
您是分析科学研究论文的专家。 请仔细阅读上面提供的研究论文,并提取以下关键信息:
从研究论文中提取以下六 (6) 个属性:
- 论文标题:研究论文的全名
- 出版年份:论文发表的年份
- 作者:论文所有作者的全名
- 作者联系方式:字典列表,其中每个字典包含每个作者的以下键:
- 姓名:作者的全名
- 机构:作者的机构隶属关系
- 电子邮件:作者的电子邮件地址(如果提供)
- 摘要:论文摘要的全文
- 摘要总结:用 2-3 句话简洁地总结摘要,突出重点
指南:
- 提取的信息应属实,并准确无误。
- 除摘要外,应极其简洁,摘要应完整复制。
- 提取的实体应该是独立的,并且不需要论文的其余部分就能轻松理解。
- 如果论文中缺少任何属性,请将该字段留空,而不是猜测。
- 对于摘要总结,重点介绍研究的主要目标、方法和主要发现。
- 对于作者联系方式,请为每个作者创建一个条目,即使缺少一些信息。如果没有提供作者的电子邮件或机构,请在字典中将该字段留空。
以 JSON 格式回答。JSON 应包含 6 个键:"PaperTitle", "PublicationYear", "Authors", "AuthorContact", "Abstract", "SummaryAbstract"。 "AuthorContact"字段应该是字典列表格式。
6 提取信息
python
# 从pdf中读取信息以辅助阅读论文
import PyPDF2
import ollama
# 注意版本问题!
# PyPDF2 == 3.0.1
# ollama == 0.3.1
# 读取pdf
# 遍历某个文件夹下的所有pdf文件
def read_pdf_text(filename):
with open(filename, 'rb') as file:
# 创建一个PDF阅读器对象
reader = PyPDF2.PdfReader(file)
res = []
# 遍历PDF中的每一页
for page_num in range(len(reader.pages)):
# 获取当前页面的文本内容
text = reader.pages[page_num].extract_text()
res.append(text)
return ''.join(res)
def extract_pdf(filename, prompt_content):
pdf = read_pdf_text(filename=filename)
prompt_content = open(prompt_content, encoding='utf-8').read()
response = ollama.chat(model='llama3',
messages = [
{'role': 'system', 'content': prompt_content},
{'role': 'user', 'content': pdf}
])
return response['message']['content']
print(extract_pdf(filename='prompts/Mobile Payment Adoption.pdf', prompt_content='prompts/scientific_papers_prompt.txt'))
上述代码分为两部分,首先使用read_pdf_text() 读取pdf文档,并转化为字符串格式。然后将其与提示词文件scientific_papers_prompt.txt输入LLM模型中,并打印出结果: