win11 ubuntu子系统 开代理 调试 openai 接口

我的是laravel项目,步骤如下

步骤1:配置WSL以使用代理

首先,确保WSL中的所有请求都通过你的代理服务器。你可以通过在WSL的shell配置文件(如~/.bashrc~/.zshrc)中设置环境变量来实现。打开终端,编辑对应的配置文件,并添加以下内容(记得替换proxy_addressproxy_port为你的代理信息):

export http_proxy=http://proxy_address:proxy_port
export https_proxy=https://proxy_address:proxy_port

保存并关闭文件,然后在终端运行source ~/.bashrcsource ~/.zshrc来应用更改。

步骤2:安装openai-php/client

首先,通过Composer安装openai-php/client。在你的Laravel项目根目录下打开终端或命令行界面,执行以下命令:

composer require openai-php/client

确保你的composer.json文件已更新,并成功安装了该库。

步骤3:配置环境变量

接下来,配置必要的环境变量。在你的.env文件中添加你的OpenAI API密钥:

OPENAI_API_KEY=你的OpenAI_API_密钥

为了方便地配置和使用代理,你也可以在.env文件中添加代理设置:

HTTP_PROXY=http://proxy_address:proxy_port
HTTPS_PROXY=https://proxy_address:proxy_port

步骤4:使用openai-php/client并配置代理

代码:

    public function __construct()
    {
        $this->api_key = env('OPENAI_API_KEY');
        $this->proxy   = env('HTTP_PROXY');

        $this->client = \OpenAI::factory()
            ->withApiKey($this->api_key)
            ->withHttpClient($client = new \GuzzleHttp\Client([
                'proxy' => $this->proxy,
            ]))
            ->make();
    }

步骤5:调用API

使用上面创建的方法实例化客户端,并调用OpenAI API:

    
    public function demo(Request $request)
    {

        $validator = Validator::make($request->all(), [
            'user_input' => 'required'
        ]);

        if ($validator->fails()) {
            return response()->json(['error' => $validator->errors()->first()]);
        }

        if (!Auth::check()) {
            return response()->json(['error' => 'please log in first']);
        }

        $input = $request->input('user_input');

        $output = $this->generateImageLink($input);

        if ($output) {
            $this->addUsage(ProductPricing::GENERATE_IMAGE);
        }

        return response()->json(['input' => $input, 'output' => $output]);
    }

    private function generateImageLink($text)
    {
        $response = $this->client->images()->create([
            'model'           => 'dall-e-3',
            'prompt'          => $text,
            'n'               => 1,
            'size'            => '1024x1024',
            'response_format' => 'url',
        ]);

        return $response->data[0]->url;

    }

效果:在这里插入图片描述

参考资料:https://github.com/openai-php/client
代理配置参考:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/455510.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

snowny-小诺框架-标签tabs消失不见

可能是由于,在配置菜单时,排序数字过小造成的,将排序数字改成大于0的数字就好使了。

数码管的静态显示(二)

1.原理 要按照上图的顺序传递位选和段选的数据。 因为q0是最高位,共阳极数码管结构是dp....a,所以应该先传入低位a,而a在上图中的8段2进制编码中是seg[7],所以段选信号的顺序是seg[0],...seg[7]。 因为输出信号是两个时钟&#x…

【绩效管理】某连锁购物中心绩效考核体系搭建咨询项目

随着企业规模的扩大,员工数量不断增加,与之相关的人事管理工作的复杂性也随之增大。但是由于行业的特点,该购物中心的人员整体素质偏低,且自成立以来,该中心重经营轻管理,其人力资源管理水平也有待提升。在…

雅特力车规级MCU-AT32A403A开发板评测 06 GC9A01 SPI-LCD 1.28圆形屏幕

雅特力车规级MCU-AT32A403A开发板评测 06 GC9A01 SPI-LCD 1.28圆形屏幕 硬件平台 AT32A403A Board开发板 1.28寸圆形彩色TFT显示屏高清IPS 模块240X240 SPI接口GC9A01 产品介绍 推荐一个屏幕资料参考网站 http://www.lcdwiki.com/1.28inch_IPS_Module 1.28寸圆形IPS彩屏&…

2024.3.13 C++

思维导图 设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #include <iostream>using namespace…

微信小程序一次性订阅requestSubscribeMessage授权和操作详解

一次性订阅&#xff1a;用户订阅一次发一次通知 一、授权 — requestSubscribeMessage Taro.requestSubscribeMessage({tmplIds: [], // 需要订阅的消息模板的id的集合success (res) {console.log("同意授权", res)},fail(res) {console.log(拒绝授权, res)}})点击或…

【Hibernate-Validate】常用注解

常用注解: NotNull:被注释的元素(任何元素)必须不为 nul, 集合为空也是可以的。NotEmpty:用来校验字符串、集合、map、数组不能为null或也不能为空(字符串传入空格也不可以)(集合需至少包含一个元素)NotBlank:被注释的字符串的必须非空&#xff0c;空格也不行&#xff0c;空字…

在ubuntu20通过docker部署zabbix6

部署Zabbix 6.x服务器在Ubuntu 20.04 LTS系统上使用Docker的方式可以简化安装过程并实现容器化管理。以下是一个简化的步骤指南&#xff1a; 步骤1&#xff1a;安装Docker和Docker Compose 确保你的Ubuntu系统已经安装了Docker和Docker Compose。如果没有&#xff0c;请执行以…

下载指定版本的pytorch

下载网址&#xff1a;https://download.pytorch.org/whl/torch_stable.html 参考博客网址&#xff1a;https://blog.csdn.net/wusuoweiieq/article/details/132773977

2 配置虚拟机

1.打开VM&#xff0c;主页的界面如下&#xff0c;点击"创建新的虚拟机" 2.选择“自定义&#xff08;高级&#xff09;”&#xff0c;然后点击下一步&#xff0c;如下图所示&#xff1a; 3.下图直接点击“下一步” 4.下图的界面上&#xff0c;注意&#xff0c;不要选择…

蓝桥杯-质因数问题

约数&#xff0c;又称因数&#xff1a;a % b 0,则b称为a的约数&#xff0c;包括1和a。 例如4的正约数有&#xff1a;1、2、4。6的正约数有&#xff1a;1、2、3、6。质因数&#xff1a; 质因数&#xff08;素因数或质因子&#xff09;在数论里是指能整除给定正整数&#xff08;…

从零开始学习深度学习库-2:反向传播

欢迎来到本系列的第二篇文章&#xff0c;我们将从头开始构建一个深度学习库。 本博客系列的代码可以在这个Github仓库中找到。 上一篇文章 在上一篇文章中&#xff08;链接见这里&#xff09;&#xff0c;我们实现了线性层和常见的激活函数&#xff0c;并成功构建了神经网络的…

浅谈HTTP 和 HTTPS (中间人问题)

前言 由于之前的文章已经介绍过了HTTP , 这篇文章介绍 HTTPS 相对于 HTTP 做出的改进 开门见山: HTTPS 是对 HTTP 的加强版 主要是对一些关键信息 进行了加密 一.两种加密方式 1.对称加密 公钥 明文 密文 密文 公钥 明文 2.非对称加密 举个例子就好比 小区邮箱 提供一…

Python学习笔记-Flask实现简单的投票程序

1.导入flask包 from flask import Flask,jsonify,abort,make_response,request,render_template 2.初始化 Flask 应用: app Flask(__name__) 3. 定义投票种类 data [{id:0,name:劳动节,num:0},{id:1,name:国庆节,num:0},{id:2,name:春节,num:0} ] 4.app.route(/index): …

2024考研计算机考研复试-每日重点(第二十期)

公众号“准研计算机复试”&#xff0c;超全大佬复试资料&#xff0c;保姆级复试&#xff0c;80%的题目都是上岸大佬提供的。 研宝们&#xff0c;App更新啦&#xff01; 计算机组成原理&#xff1a; 10.☆什么是数据存储的大端模式和小端模式&#xff1f; 大端模式&#xff1a;数…

github拉取项目找不到前端代码

今天从github上拉取了一个项目&#xff0c;使用docker部署在了服务器上&#xff0c; 代码正常运行&#xff0c;但是想在下载的项目中找前端代码遇到了问题&#xff0c;项目结构中的template模板只有一个页面&#xff0c;于是查看nginx配置文件 查看index.html 引入了一些js文件…

EasyRecovery恢复电脑丢失数据怎么样?

电脑是我们大家熟悉并且常用的数据存储设备&#xff0c;也是综合性非常强的数据处理设备。对于电脑设备来讲&#xff0c;最主要的数据存储介质是硬盘&#xff0c;电脑硬盘被划分成多个分区&#xff0c;在电脑上表现为C盘&#xff0c;E盘等&#xff0c;用来保存系统文件以及其他…

easyrecovery破解版百度云(含Mac/Win版)以及EasyRecovery可以恢复哪些设备

软件介绍 当不小心将回收站的文件删除了怎么办&#xff1f;想找回但是不知道怎么找回需要的数据文件&#xff1f;别担心今天小编就为大家介绍一款非常专业的电脑数据文件恢复工具&#xff0c;easyrecovery14是由Ontrack专为电脑用户推出的一款专业的数据恢复软件&…

IT廉连看——Uniapp——模板语法

IT廉连看——Uniapp——模板语法 众所周知&#xff0c;Uniapp是使用vue.js框架开发出来的&#xff0c;所以说它可以使用vue中的语法和指令来开发我们的项目。如果没有学习过vue的话开发起来会比较吃力&#xff0c;所以这节课就带大家学习几个常用的vue知识。如果有学习过vue&a…

【编码魔法师系列_结构型5】外观模式(Facade Pattern)

学会设计模式&#xff0c;你就可以像拥有魔法一样&#xff0c;在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们&#xff08;GoF&#xff09;凝聚出来的最佳实践&#xff0c;可以提高代码的可读性、可维护性和可重用性&#xff0c;从而让我们的开发效率更高。通…