GPT-3,特别是 ChatGPT,现在很热门!AI(人工智能)正在呈指数级发展,并进入许多领域,包括自然语言处理、图像处理和其他领域。
我从一开始就是 ChatGPT 的粉丝,每天依靠它轻松快速地探索和学习新事物。
openai-php/client 和 openai-php/laravel 包的出现让我兴奋地在我的项目中使用 OpenAI API。因此,我在 Laravel 中构建了这个ChatGPT 项目启动模板。这可以作为 Laravel 中任何未来或更广泛应用程序的基础。
此入门工具包(starter kit)使用 PHP Laravel 和 OpenAI API。与 ChatGPT ( chat.openai.com) 一样,您可以在对话框中与此入门工具包聊天。这是我想出的一种解决方法,可以为 GPT-3 引擎提供上下文。
技术栈
我为此入门模板使用了以下技术:
- The latest Laravel v9.x package.
- The latest openai-php/laravel package.
- Inertia JS v1.0
- The latest Tailwindcss v3.x
您最初从一个全新的 Laravel 应用程序开始,并添加 Laravel Breeze 入门工具包。
在开发此入门工具包时,我将代码和所有必需的组件隔离在 GPT 文件夹下。这适用于后端代码,您可以在其中找到 app\Gpt 文件夹下的所有内容。或者我添加了 resources/js/Pages/Gpt.vue 页面和 resources/js/Components/Gpt 文件夹的前端代码。最后,对于测试,我添加了 tests/Feature/Gpt 文件夹来测试入门工具包的功能。
要运行此应用程序,请获取您自己的 OpenAI API 密钥并将其放入 .env 文件中:
OPENAI_API_KEY=
接下来,使用以下命令安装后端组件:
composer install
最后,运行以下两个命令来运行该应用程序:
npm install && run dev
初学者工具包还支持使用官方 Laravel Sail 包在 Docker 容器上运行。因此,您可以通过以下命令使用 docker sail 运行它:
./vendor/bin/sail up -d
./vendor/bin/sail npm
./vendor/bin/sail npm run dev
你也可以使用 yarn 代替 npm。查看Laravel Sail 的官方文档以获取更多信息。
运行
当 GPT Index 页面首次加载时,它会向 OpenAI API 执行 GET 请求以检索所有已保存的模型。这些模型出现在入门工具包的左侧栏中,允许用户选择 OpenAI 模型或引擎。
在 GPT Index页面上,我将默认模型设置为 text-davinci-003。这是迄今为止最受欢迎的模型,您可以自由更改它。
用户还可以玩完成的温度。温度值越低,答案就越准确和直接。
最后,用户可以更改最大长度或令牌,通常在 0 到 4000 之间。
当用户输入新提示时,将向服务器发送新的 POST 请求并传递以下字段:
- 型号名称
- 温度值
- 最大长度标记值
- 提示文字。
服务器依次向 OpenAI API 发出完成请求以生成响应。
然后将响应文本作为来自 OpenAI API 的回复显示给用户。
保留上下文
我在 OpenAI API 中注意到,缺少从一个提示到另一个提示的上下文。
如果您尝试官方 chat.openai.com/ 网站,您会注意到上下文已保留。例如,您提示聊天机器人列出五个包含虾的食谱。在下一个提示中,您要求聊天机器人列出第二个选项的成分。请注意,您没有在第二个选项中指定食谱的名称。这是因为 ChatGPT 聊天机器人会保留上下文并记住您之前的提示或讨论。
因此,此功能是 ChatGPT 聊天机器人的一部分,而不是 OpenAI API。
我在这个入门工具包中找到了一种将上下文传递给模型的方法。因此,使用这个入门工具包,您将拥有一个托管上下文。对于您发送的每个新提示,模型都会记住原始讨论。我不会揭露我做了什么;您可以在下载此入门工具包的副本时看到它