简介
本文将介绍如何使用 PHP 调用 DeepSeek API,实现流式对话并保存对话记录。PHP 版本使用面向对象的方式实现,代码结构清晰,易于维护。
1. 环境准备
1.1 系统要求
- PHP 7.0 或更高版本
- PHP cURL 扩展
- 文件写入权限
1.2 项目结构
deepseek-project/
├── main.php # 主程序
└── conversation.txt # 对话记录文件
2. 完整代码实现
<?php
class DeepSeekChat {
private $url = 'https://api.siliconflow.cn/v1/chat/completions';
private $apiKey = 'YOUR_API_KEY'; // 替换为你的 API Key
private $logFile = 'conversation.txt';
public function __construct() {
// 确保日志文件存在且可写
if (!file_exists($this->logFile)) {
touch($this->logFile);
}
}
private function saveToFile($content, $isQuestion = false) {
$timestamp = date('Y-m-d H:i:s');
$text = $isQuestion
? "\n[$timestamp] Question:\n$content\n\n[$timestamp] Answer:\n"
: $content;
file_put_contents($this->logFile, $text, FILE_APPEND);
}
private function processStreamingResponse($handle) {
$buffer = '';
while (!feof($handle)) {
$chunk = fread($handle, 1024);
$buffer .= $chunk;
// 处理缓冲区中的每一行
while ((