一、Laravel项目安装EasyWeChat
首先,使用 Composer 安装 EasyWeChat 扩展:
composer require overtrue/easywechat
安装完成后,在 Laravel 的配置文件中,配置微信公众平台的相关信息,包括 AppID 和 AppSecret。这些信息可以在微信公众平台的开发者设置中获取。
二、扩展 EasyWeChat:创建 DeepSeekService
在 Laravel 中,创建一个新的服务类 DeepSeekService,用于与 DeepSeek 的 API 进行交互。以下是代码实现:
namespace App\Services;use GuzzleHttp\Client;use Illuminate\Support\Facades\Log;class DeepSeekService{protected $apiKey;protected $apiUrl;protected $model;public function __construct(){$this->apiKey = config('services.deepseek.api_key');$this->apiUrl = config('services.deepseek.api_url');$this->model = config('services.deepseek.model');}public function askQuestion($question){Log::info('DeepSeekService: askQuestion method called with question:', ['question' => $question]);$cacheKey = 'deepseek Question:' . md5($question);if (cache()->has($cacheKey)) {Log::info('DeepSeekService: Using cached response for:', ['question' => $question]);return cache()->get($cacheKey);}$client = new Client();try {$data = ['model' => $this->model,'messages' => [['role' => 'user','content' => $question,],],'temperature' => 0.7];$response = $client->post($this->apiUrl . '/chat/completions', ['headers' => ['Authorization' => 'Bearer ' . $this->apiKey,'Content-Type' => 'application/json'],'json' => $data]);if ($response->getStatusCode() == 200) {$data = json_decode($response->getBody(), true);Log::info('DeepSeekService: Received response from API:', ['response' => $data]);$answer = $data['choices'][0]['message']['content'] ?? '暂无回答';cache()->put($cacheKey, $answer, 60); // 缓存1分钟return $answer;} else {Log::warning('DeepSeekService: API returned non-200 status code:', ['status_code' => $response->getStatusCode()]);return '问答服务暂时不可用';}} catch (\Exception $e) {Log::error('DeepSeekService: Exception occurred while calling API:', ['exception' => $e]);return '问答服务暂时不可用';}}}
三、配置服务文件
在 config/services.php 中,添加 DeepSeek 的配置项:
'deepseek' => ['api_key' => env('DEEPSEEK_API_KEY'),'api_url' => env('DEEPSEEK_API_URL', 'https://api.deepseek.com/v1/ask'),'model' => env('DEEPSEEK_MODEL'),],
在 .env 文件中,配置 DeepSeek 的接口信息:
扫码关注公众号,查看隐藏内容
六、总结
通过以上步骤,我们成功在 Laravel 框架中接入了 DeepSeek,实现了微信公众号的智能问答功能。借助队列机制,我们有效避免了微信请求超时的问题,确保用户体验的流畅性。希望本文能为开发者提供有价值的参考,助力更多智能应用的开发。
END
- 1 Magento ver. 2.2.0-dev - A technical prob... 16577
- 2 ECS git pull 代码很慢的问题 14712
- 3 玩客云监工客户端 13202
- 4 Magento 2 UI Form Validation 13118
- 5 Codeigniter SSL 强制重定向至https访问 13004
- 6 magento2 完整卸载模块的正确姿势 12638
- 7 Magento fix 500 12279
- 8 Magento index is locked by another reinde... 10736
- 9 Ubuntu删除日志文件 9009
- 10 Magento 2安装ElasticSearch 6.x搜索引擎-Ub... 8621