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
代理配置参考:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构知识点总结00-知识点目录

专栏主页: 数据结构算法程序设计基础C语言知识点总结https://blog.csdn.net/seeker1994/category_12585732.html C语言知识点总结00-C语言知识点目录 最优算法100例00-最优算法100例目录 ...... 数据结构知识点目录 要求: (1&#xff…

08.JavaScript中的编程思想,构造函数和原型对象

一、编程思想 学习 JavaScript 中基于原型的面向对象编程序的语法实现,理解面向对象编程的特征。 1.面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次 调用就可以了。 举个…

小明的背包——01背包问题

经典版 题目链接:1.小明的背包1 - 蓝桥云课 (lanqiao.cn) 01背包问题中,每种物品只有两种状态,即拿或不拿。设状态dp[i][j]max(dp[i-1][j],dp[i-1][j-w]v);如果不拿物品i,那么最大价值就是dp[i-1][j],如果…

探索Java高并发编程之道:理论与实践

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 简介 随着互联网和信息技术的快速发展&#x…

【2024 R1 版本更新】Ansys Fluent(上)

​​Ansys2024R1来了,小宇赶紧将新功能给大家汇报一下。GPU求解器功能势头最强,pyFluent又开始迭代了,CPU模型中又更新了很多功能,fluent meshing中的thin volume mesh功能也来了。

libusb_Qt使用

Libusb libusb_github 建议直接下载库,编译好麻烦 QT调用 .pro文件添加: win32: LIBS -L$$PWD/LIB/libusb/x64/ -llibusb-1.0.cpp调用即可 #include "LIB/libusb/libusb.h" void class_name::fun(){/* 1. */libusb_init(NULL);/**/str…

mockjs学习

1.前言 最近面试发现之前团队协同合作的项目没有mock数据难以向面试官直接展示,所以迟到得来速学一下mockjs。 参考视频:mockJs 妈妈再也不用担心我没有后端接口啦_哔哩哔哩_bilibili 一开始查阅了一些资料,先是看了下EasyMock&#xff0c…

环保企业应适应行业发展趋势,不断创新和提升竞争力|中联环保圈

《2023年行业评述及2024年发展展望》一文,由中国环保产业协会撰写,全面审视了过去一年我国生态环保产业的发展状况,并对新的一年发展趋势进行了深度预测。该报告以行业主要政策标准为基础,结合报告以及新冠疫情防控转段后的经济恢…

Cocos2dx-lua ScrollView[二]进阶篇

一.概述 本文缩写说明:sv = ScrollView, item代表ScrollView的一个子节点 如果对sv熟系程度还不够,请阅读基础篇: Cocos2dx-lua ScrollView[一]基础篇-CSDN博客 本文介绍sv的一种封装类库,来实现快速创建sv,有如下几个优点: 1.item的位置通过参数控制,提高开发效率…

使用Java自带的VisualVM监控远程服务器部署在Docker容器中的Java项目并使用Mat在线工具排查服务器内存泄露或内存溢出的原因

事情是这样的,我们项目最近应业主的要求迁移到了新的服务器,起初一切正常,部署、上线、测试都没有问题,项目大概运行了一周的工作日时间都没出现问题,直到周六那天,项目经理打电话过来说服务器崩了&#xf…

鼠标不动了怎么办?4招帮你解决问题!

“我在使用鼠标时,用着用着鼠标就动不了了,这是为什么呢?怎么才能让鼠标恢复正常呢?” 鼠标作为电脑使用中最常用的输入设备之一,其正常运行对于我们的工作效率至关重要。然而,有时我们可能会遇到鼠标突然不…

深入学习React开发:从基础到实战

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 引言 React是一款流行的JavaScript库&#xf…

C#重新认识笔记_ FixUpdate + Update

C#重新认识笔记_ FixUpdate Update Update: 刷新频率不一致,非物理对象的移动,简单的刷新可用, FixedUpdate: 刷新频率一致,按照固定频率刷新,一般调用FixedUpdate之后,会立即进入必要的物理计算中,因此,任何影响刚…

【CSP试题回顾】201803-1-跳一跳

CSP-201803-1-跳一跳 解题代码 #include <iostream> using namespace std;int score, s, last_s -1;int main() {while (true){cin >> s;if (s 0) break;else if (s 1) {score s;last_s s;}else if (s 2) {if (last_s>2){score last_s;last_s 2;}else…

Python 界面逻辑分离示例

本示例使用的发卡设备&#xff1a;https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c.w4002-21818769070.11.6cc85700Robi3x 一、Python 安装PyQt5&#xff0c;运行 Qt Designer 新建窗体文件&#xff0c;在窗体中拖放控件 完成界面设计&#xff0c;保存为…

克隆图00

题目链接 克隆图 题目描述 注意点 节点数不超过100每个节点值 Node.val 都是唯一的&#xff0c;1 < Node.val < 100无向图是一个简单图&#xff0c;这意味着图中没有重复的边&#xff0c;也没有自环图是连通图&#xff0c;可以从给定节点访问到所有节点 解答思路 本…

活动图高阶讲解-03

1 00:00:00,000 --> 00:00:06,260 刚才我们讲了活动图的历史 2 00:00:06,260 --> 00:00:11,460 那我们来看这个活动图 3 00:00:11,460 --> 00:00:15,260 如果用来建模的话怎么用 4 00:00:15,260 --> 00:00:20,100 按照我们前面讲的软件方法的工作流 5 00:00:20…

【网络安全】手机不幸被远程监控,该如何破解,如何预防?

手机如果不幸被远程监控了&#xff0c;用三招就可以轻松破解&#xff0c;再用三招可以防范于未然。 三招可破解可解除手机被远程监控 1、恢复出厂设置 这一招是手机解决软件故障和系统故障的终极大招。只要点了恢复出厂设置&#xff0c;你手机里后装的各种APP全部将灰飞烟灭…

STM32中断和外部中断

NVIC&#xff1a;嵌套中断向量控制器&#xff1a;用于统一分配中断优先级和管理中断 响应式优先级&#xff1a;也可以称为插队式优先级哪个优先级高优先处理哪个 抢占式优先级&#xff1a;优先级高的可以优先被处理&#xff0c;相当于CPU可以暂时中断当前处理的程序&#xff0c…

Python算法(列表排序)

一。冒泡排序&#xff1a; 列表每两个相邻的数&#xff0c;如果前面比后面大&#xff0c;则交换这两个数 一趟排序完成后&#xff0c;则无序区减少一个数&#xff0c;有序区增加一个数 时间复杂度&#xff1a;O(n*n) 优化后&#xff1a;已经排序好后立马停止&#xff0c;加快…