我的是laravel项目,步骤如下
步骤1:配置WSL以使用代理
首先,确保WSL中的所有请求都通过你的代理服务器。你可以通过在WSL的shell配置文件(如~/.bashrc
或~/.zshrc
)中设置环境变量来实现。打开终端,编辑对应的配置文件,并添加以下内容(记得替换proxy_address
和proxy_port
为你的代理信息):
export http_proxy=http://proxy_address:proxy_port
export https_proxy=https://proxy_address:proxy_port
保存并关闭文件,然后在终端运行source ~/.bashrc
或source ~/.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
代理配置参考: