12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?php
- namespace App\Http\Controllers\API;
- use App\Http\Controllers\Controller;
- use App\Services\LLM\DeepSeekService;
- use Illuminate\Http\Request;
- use Symfony\Component\HttpFoundation\StreamedResponse;
- class DeepSeekChatController extends Controller
- {
- public function handleStream(Request $request): StreamedResponse
- {
- // 一个session进行多轮对话
- $sessionId = $request->input("session_id");
- // 获取该session的历史对话记录
- $history = [];
- if ($sessionId) {
- // 从缓存中获取该session的历史对话记录
- }
- return new StreamedResponse(function () use ($request) {
- // 1. 设置SSE头
- header('Content-Type: text/event-stream');
- header('Cache-Control: no-cache');
- header('Connection: keep-alive');
- header('X-Accel-Buffering: no');
- // 2. 获取请求参数
- $prompt = $request->input('prompt', '');
- // 追加该会话上下文
- $message = [
- ['role' => 'user', 'content' => $prompt],
- ];
- DeepSeekService::streamedResponseChat($message);
- }, 200, [
- 'Content-Type' => 'text/event-stream',
- 'Access-Control-Allow-Origin' => '*'
- ]);
- }
- }
|