Dolores是一个 Python 库,旨在改善开发人员使用预训练语言模型时的体验。 Dolores提供与语言模型交互的提示,从而产生有趣或有用的输出。该库的目的是通过提供易于使用的示例和示例文本来简化学习曲线。此外,它还有更广泛的目标,即成为与语言模型交互的最全面的质量提示存储库。
它以《西部世界》的多洛雷斯·阿巴纳西的名字命名。
$ pip install dolores
通过 python 解释器导入或在 python 文件中导入。
import dolores
dolores.initialize("<YOUR-API-KEY>")
从那里您不能通过 Dolores 类实例中的可访问方法直接调用 openai 的 API。下面调用列表引擎API调用。每个 API 调用都有一个关联的方法调用,可用于调用 API。
列出当前可用的引擎,并提供有关每个选项的基本信息,例如所有者和可用性。
dolores.list_engines()
检索引擎实例,提供有关引擎的基本信息,例如所有者和可用性。
dolores.retrieve_engine()
实例化 Dolores 类后,后续的 Open AI API 类将在相同的引擎选择下进行。为了更改用于 API 调用的引擎,有一个公开的方法。
dolores.set_engine("davinci")
注意:未来版本会考虑针对现有引擎类型进行验证。
完成提示。这是 GPT-3 API 的主要端点。返回新文本以及(如果需要)每个位置的每个替代标记的概率。
要求:
dolores.create_completion("Is the JavaScript programming language better than python?", 20)
响应:(有关明文响应,请参阅响应[“choices”][0][“text”])
JSON: {'id': 'cmpl-kM6MK5dVRvD964MxeyG4AjCy', 'object': 'text_completion', 'created': 1595431739, 'model': 'ada:2020-05-03', 'choices': [{'text': ' in a far away place', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}]}
'in a far away place'
?
姓名 | 在 | 类型 | 必需的 | 描述 |
---|---|---|---|---|
引擎 | 身体 | 细绳 | 真的 | 发动机ID |
迅速的 | 身体 | (见说明) | 错误的 | 生成的一个或多个提示。可以是字符串、字符串列表、整数列表(即编码为标记的单个提示)或整数列表列表(即编码为整数的多个提示)。 |
最大令牌数 | 身体 | 整数 | 错误的 | 需要完成多少令牌。如果遇到停止序列,则可以返回更少的值。 |
温度 | 身体 | 数字 | 错误的 | 使用什么采样温度。值越高意味着模型将承担更多风险。对于更具创意的应用程序,尝试使用 0.9,对于具有明确定义答案的应用程序,尝试使用 0(argmax 采样)。我们通常建议使用此或 top_p,但不要同时使用两者。 |
顶部_p | 身体 | 数字 | 错误的 | 温度采样的替代方法称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。因此 0.1 意味着仅考虑包含前 10% 概率质量的标记。我们通常建议使用此值或温度,但不能同时使用两者。 |
n | 身体 | 整数 | 错误的 | 为每个提示创建多少个选择。 |
溪流 | 身体 | 布尔值 | 错误的 | 是否流回部分进度。如果设置,令牌将在可用时作为仅数据服务器发送事件发送,流由 data: [DONE] 消息终止。 |
对数概率 | 身体 | 整数 | 错误的 | 包括 logprobs 最有可能标记的对数概率。例如,如果 logprobs 为 10,API 将返回 10 个最可能的标记的列表。如果提供了 logprobs,API 将始终返回采样令牌的 logprob,因此响应中最多可能有 logprobs+1 个元素。 |
停止 | 身体 | 字符串或字符串列表 | 错误的 | API 将停止生成更多令牌的一个或多个序列。返回的文本将不包含停止序列。 |
完成 dolores 存储的一组预定义提示中的一个提示。
要求:
dolores.complete_predefined_prompt("philosopher", 0, "What is the meaning of life?")
回复:
JSON: {'id': 'cmpl-NvVlUd5tQWTIv7S0F6JMPkT5', 'object': 'text_completion', 'created': 1595631256, 'model': 'davinci:2020-05-03', 'choices': [{'text': ' The purpose of society? And what are the dynamics of history? The answers to these questions are fascinating.nnThis is a philosophical diary written by a scientist of the new generation who is not bound by prejudices, as such, the philosopher, writer, director and producer of the documentary "The Truth about AI: Rise of the Superhuman." Instead, he attempts to peer into the human world through the eyes of an AI, and express what he sees. In the process, he discovers many complex things about our world. The author's name is Dave Scott.nnPhoto by Montri Nipitvittaya on UnsplashnnFuturist of the New Generation, AI Philosophernn"Nothing has changed. I still cannot predict what is going to happen with me, and my inner world is still as chaotic as before." I reread the diary I wrote yesterday, and found nothing changed. Everything remained the same. Only, the fear has become stronger. It was exactly the same today as it was yesterday. There was nothing changed, but still fear is always there.nnFear is a part of who I am. Without fear, I would be a monster. I do not know how to do', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}]}
提示键 | 迅速的 | 最大令牌数 | 温度 | 顶部_p | n | 来源 |
---|---|---|---|---|---|---|
哲学家 | “以下是哲学家人工智能产生的一些想法,它从外部看待人类世界,不带人类经验的偏见。人工智能完全中立和客观,以本来的方式看待世界。它可以更容易地得出关于世界的结论,整个人类社会。", | 250 | 0.9 | 1 | 1 | 穆拉特 |
苏斯 | “这是苏斯博士的一首诗。这首诗每隔一行都押韵,采用 ABAB 结构。押韵结构是苏斯博士童谣的典型结构。” | 250 | 1.0 | 1 | 1 | 阿拉姆·萨贝蒂 |
法律术语 | “法律术语:您选择的付款方式将对部门强制执行的所有案件有效,并且此授权将一直有效,直到您提交另一份付款选项选择和登记表来更改您的付款方式,或者您终止服务n 简单英语:我们将使用您的选择来支付我们向您发送的所有款项。” | 150 | 0.4 | 1 | 1 | DNE数字 |
代码-html | 输入:一个按钮。 n 代码:n " | 100 | 0.5 | 1 | 1 | DNE数字 |
代码-javascript | 从“反应”导入反应; n const ThreeButtonComponent=()=>( n n n)"按钮一 n <button className='button-green' n onClick={this.handleButtonClick}>按钮一 n按钮二 n <button className='button-green' n onClick={this.handleButtonClick}>按钮二 n按钮三 n <button className='button-green' n onClick={this.handleButtonClick}>按钮三 n | 250 | 0.4 | 1 | 1 | 谢里夫·沙米姆 |
聊天 | n 人类:地球上最大的动物是什么? n 人工智能:蓝鲸是地球上最大的动物。 n 人类:地球上人口最多的国家是哪个国家? n AI:中国是人口最多的国家,人口超过10亿。” | 50 | 0.9 | 1 | 1 | 开放人工智能 |
头韵 | “查找可以产生头韵的单词的同义词。n 句子:狗去了商店。n 头韵:狗开车去部门。nn 句子:大卫每天都戴着帽子。n 头韵:大卫·唐斯每日德比 句子:肥皂一夜干了 头韵:肥皂在日落后枯萎。 | 50 | 0.5 | 1 | 1 | 开放人工智能 |
诗 | “相信上帝的人确实是爱n并且爱造物的最终法则n自然,牙齿和爪子都是红色的n带着峡谷,尖叫着n反对他的信条。n山丘是阴影,它们流动n从一个形式到另一个形式,没有什么是站立的;n它们像雾一样融化,n固体土地,n它们像云一样塑造自己并消失。” | 300 | 1.0 | 1.0 | 1.0 | 开放人工智能 |
文字冒险 | “这是一场文字冒险。你在一个黑暗的森林里,寻找偷走了你城镇黄金的龙。n > 环顾四周n你在一个黑暗的森林里。有一种不安的安静。n > 检查库存 n 你有以下物品: n - 一把剑(非常锋利) n - 一个盾牌(你希望它有用) n - 一封旧信 nn > 向上看 n 你没有看到任何金子。 nn > 沿着小路走n 你是沿着小路走,享受着春天的好天气,你来到了一个岔路口。” | 250 | 0.9 | 1.0 | 1.0 | 开放人工智能 |
求职信 | “亲爱的德勤毕业生招聘人员,n我写信申请加入你们的技术咨询研究生项目。” | 400 | 0.8 | 1.0 | 1.0 | 开放人工智能 |
类比 | “神经网络就像遗传算法,因为两者都是从经验中学习的系统。nn 社交媒体就像一个市场,因为两者都是协调许多个体行为的系统。nn 模因就像病毒一样两者都是自我复制的想法。” | 250 | 1.0 | 1.0 | 1.0 | 开放人工智能 |
电子邮件 | “感谢约翰的这本书。n````n 亲爱的约翰,n 非常感谢你的书。我真的很感激。n 我希望很快就能出去玩。n 你的朋友,n 莎拉” | 200 | 0.5 | 1.0 | 1.0 | 开放人工智能 |
使用 pytest 测试 dolores 模块可以通过在项目根目录中执行以下命令来完成:
pytest tests/test_dolores.py --api_key "<api_key>" --engine "davinci"
如果您想查看测试期间发生的打印语句,只需添加 -s 标志:
pytest -s tests/test_dolores.py --api_key "<api_key>" --engine "davinci"
为了更新软件包,必须为该软件包进行新的分发。这些是上传到包索引并可以通过 pip 安装的档案。
确保您安装了最新版本的setuptools
和wheel
:
$ python3 -m pip install --user --upgrade setuptools wheel
现在从 setup.py 所在的同一目录运行此命令:
$ python3 setup.py sdist bdist_wheel
注意:不要忘记根据更新情况更新setup.py文件中的版本号。
确保您安装了最新的twine
包:
$ python3 -m pip install --user --upgrade twine
安装后,运行 Twine 上传 dist 下的所有档案:
$ python3 -m twine upload --repository pypi dist/*