Skip to content

推理

  • 可以是一些关于文本作为输入并执行某种分析的任务
  • 如提取标签、名称、情感分析等常见的NLP任务
  • 传统的机器学习针对每一个任务都需要重新训练部署模型

准备工作

python
! pip install --upgrade openai
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Collecting openai
  Downloading openai-0.27.6-py3-none-any.whl (71 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.9/71.9 kB 3.1 MB/s eta 0:00:00
[?25hRequirement already satisfied: requests>=2.20 in /usr/local/lib/python3.10/dist-packages (from openai) (2.27.1)
Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from openai) (4.65.0)
Collecting aiohttp
  Downloading aiohttp-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 29.9 MB/s eta 0:00:00
[?25hRequirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai) (1.26.15)
Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai) (2.0.12)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai) (2022.12.7)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai) (3.4)
Collecting frozenlist>=1.1.1
  Downloading frozenlist-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (149 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 149.6/149.6 kB 18.1 MB/s eta 0:00:00
[?25hCollecting yarl<2.0,>=1.0
  Downloading yarl-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (268 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 268.8/268.8 kB 24.0 MB/s eta 0:00:00
[?25hCollecting aiosignal>=1.1.2
  Downloading aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Collecting multidict<7.0,>=4.5
  Downloading multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (114 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 114.5/114.5 kB 15.1 MB/s eta 0:00:00
[?25hCollecting async-timeout<5.0,>=4.0.0a3
  Downloading async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai) (23.1.0)
Installing collected packages: multidict, frozenlist, async-timeout, yarl, aiosignal, aiohttp, openai
Successfully installed aiohttp-3.8.4 aiosignal-1.3.1 async-timeout-4.0.2 frozenlist-1.3.3 multidict-6.0.4 openai-0.27.6 yarl-1.9.2
python
import os
os.environ['OPENAI_API_KEY'] = '<your openai api key>'
python
import openai

def get_completion(prompt, model="gpt-3.5-turbo"):
  messages = [{"role": "user", "content": prompt}]
  response = openai.ChatCompletion.create(
      model=model,
      messages=messages,
      temperature=0
  )
  return response.choices[0].message["content"]
python
prompt = f"""
请虚构一个关于<Justin3go>该网站的评论,总体来说比较中肯,是积极的,但也指出了该网站的某些缺点,大约100字
"""

text = get_completion(prompt)
text
'我认为Justin3go是一个非常有用的网站,它提供了许多有关编程和技术的信息和资源。该网站的界面简洁明了,易于使用。但是,我认为该网站的搜索功能可以更好地改进,有时候搜索结果并不是很准确。此外,该网站的社区互动也可以更加活跃,增加用户之间的交流和互动。总体来说,Justin3go是一个值得推荐的网站。'
python
prompt = f"""
请对以下文本进行情感分析,输出0-1的情感得分,0代表消极,1代表积极:
```{text}```
"""

res = get_completion(prompt)
print(res)
情感得分:0.8(积极)

分析:该文本中提到了该网站的优点和缺点,但是总体来说,作者认为该网站是非常有用的,并且值得推荐。因此,情感得分为积极。
python
prompt = f"""
请虚构一个关于<Justin3go>为人名的童话故事,大约500字
"""

text = get_completion(prompt)
print(text)
从前有一个叫做Justin3go的小男孩,他生活在一个美丽的小镇上。他是一个非常聪明、勇敢和善良的孩子,他总是乐于助人,帮助那些需要帮助的人。

有一天,Justin3go听说了一个关于一个神秘的宝藏的传说。这个宝藏据说被埋藏在一个古老的城堡里,只有最勇敢的人才能找到它。Justin3go决定要去寻找这个宝藏,他相信自己一定能找到它。

于是,Justin3go开始了他的冒险之旅。他穿过了茂密的森林,爬过了陡峭的山峰,穿过了危险的河流。在他的旅途中,他遇到了许多困难和挑战,但他从未放弃过。

最终,Justin3go到达了那个古老的城堡。他发现城堡里面充满了陷阱和危险,但他并没有被吓倒。他勇敢地面对每一个挑战,最终他找到了那个神秘的宝藏。

宝藏里面有许多珍贵的宝石和黄金,但是Justin3go并没有把它们带走。相反,他决定把宝藏留在那里,让其他人也有机会来寻找它。他相信,只有那些真正勇敢和善良的人才能找到这个宝藏。

Justin3go回到了他的家乡,他成为了一个英雄。他的勇气和善良的品质让他成为了人们心中的楷模。他的故事也成为了一个传说,人们会一代一代地讲述他的故事,直到永远。

从此以后,Justin3go过着幸福的生活,他知道他的冒险之旅让他变得更加勇敢和善良。他也知道,只要他相信自己,他可以做任何事情。
python
prompt = f"""
请对以下文本提取其中的主题:
```{text}```
"""

res = get_completion(prompt)
print(res)
主题:勇气、善良、冒险、传说、成为楷模、相信自己。
python
prompt = f"""
请对以下文本提取其中的实体标签,并以JSON格式输出,键为实体类别,值为提取出来的实体:
```{text}```
"""

res = get_completion(prompt)
print(res)
{
  "人物": ["Justin3go"],
  "地点": ["小镇", "森林", "山峰", "河流", "城堡", "家乡"],
  "物品": ["宝藏", "宝石", "黄金"],
  "属性": ["聪明", "勇敢", "善良", "英雄"]
}
python