0%

1
%env OPENAI_API_KEY=sk-XXX

获取openai开放的模型列表:

1
2
3
4
5
6
7
8
9
import openai
import pandas as pd
import os

openai.api_key = os.environ.get("OPENAI_API_KEY")
# list all open ai models
engines = openai.Engine.list()
pd = pd.DataFrame(openai.Engine.list()['data'])
display(pd[['id', 'owner']])
阅读全文 »

大型语言模型的一个令人兴奋的方面是,你可以利用它来构建一个定制的聊天机器人,并且只需付出少量的努力。ChatGPT 的网页界面可以让你与一个大型语言模型进行对话。但其中一个很酷的功能是,你也可以利用大型语言模型构建你自己的定制聊天机器人,例如扮演一个人工智能客服代理或餐厅的人工智能点餐员的角色。本篇文章将揭晓如何做到这一点。

下面是两种调用OpenAI接口的函数。get_completion只支持单轮对话,意味着模型回答问题时不会考虑之前的对话信息。get_completion_from_messages支持多轮对话信息。这是因为它的参数message可以包含对话的上下文。下面我们看看它们在对话机器人中是怎么使用的。

阅读全文 »

最近debug程序真是越来越离不开ChatGPT了。将问题直接抛给ChatGPT大大提高了我查找问题的速度。很多时候我已经无需另外使用搜索引擎来查找资料了。

这个是我将一段Linux上运行的程序移植到Windows上运行时出现的问题。编译发现没有u_char这个类型。开始我以为是Linux和Windows上标准库不一致。向ChatGPT请教了一下,它直接告诉我这个类型是Linux的系统文件定义的。简单快速地解决了我的疑惑。

阅读全文 »

现在是信息爆炸时代,打开手机,各种文章扑面而来。我们的精力是有限的。如果有人帮忙把文章总结好给我们,这不就节省了很多时间嘛!我们也就可以阅读更多的文章了。

恰好大语言模型在总结文章方面非常有天赋。

阅读全文 »

这节介绍大模型判断文字的语义,或者说对内容进行情感分析的能力。同时也演示了大模型如何提取出文字中的关键信息。

在传统的机器学习方案中,要做到对文字内容的情感分析,需要先对一系列的文字内容(如评论)进行人工标注。把这些文字内容人工分类成“正向”和负向“,然后再喂给一个机器学习模型去训练,得到一组参数。模型训练好后再部署好,把需要判断的未标注文字内容给到训练好的模型,让它判断一下文字内容的情感倾向。

可以看到,对于传统的机器学习方案,有很多工作需要做。而且这个训练出来的模型也只能干这一件事情。如果我们想要提取文字内容中的关键信息又得重新训练另外一个单独的模型。

阅读全文 »

文字扩展是将较短的文本片段,例如一组指令或主题列表,交给大型语言模型生成更长的文本,例如基于已有的内容生成一封电子邮件或一篇关于某个主题的文章的任务。又或者你列出大纲,标题,让大模型填充对应的内容。

另外,还有一些很好的用途,例如将大型语言模型用作头脑风暴的伙伴。

但这里必须要提醒的是,ChatGPT生成的内容不一定准确,所以使用的时候要认真甄别。比如著名的stack overflow网站就曾被chatgpt的回答霸占,导致网站上充斥着不准确的回答。官方随即封禁了ChatGPT。

阅读全文 »

在本篇文章中,我们将探讨如何使用大语言模型进行文本转换任务,例如语言翻译、拼写和语法检查、语气调整和格式转换。

翻译

ChatGPT接受多种语言的训练,使得模型具备翻译能力。以下是如何使用这种能力的一些示例。

1
2
3
4
5
6
prompt = f"""
Translate the following English text to chinese: \
​```Hi, I would like to order a blender```
"""
response = get_completion(prompt)
print(response)

回答:

1
你好,我想订购一个搅拌机。
阅读全文 »

下面是调用openai的completion接口的函数。但在本文中并不是重点。了解一下就好。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import openai
import os

from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())

openai.api_key = os.getenv('OPENAI_API_KEY')

def get_completion(prompt, model="gpt-3.5-turbo"):
messages = [{"role": "user", "content": prompt}]
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=0, # this is the degree of randomness of the model's output
)
return response.choices[0].message["content"]

下面我们来说说,书写提示词的基本原则。

阅读全文 »

当我们在调试程序时,通常很难一次就把程序正常跑起来。这是普遍现象。但我们会借助一些工具和手段,有步骤有流程地去调整程序,最终让程序按照我们想要的样子正常执行。

对于提示词来说也是一样的。当我们向ChatGPT提问时,一开始它给我们的答案可能并不理想。但是当我们逐步去调整提示词,慢慢地,它的回答就会接近我们想要的答案。

所以这里最重要的是我们如何去迭代提示词?

阅读全文 »