|
|
@@ -413,25 +413,27 @@ class DeepSeekService
|
|
|
'stream' => false // 是否流式输出,如果设置为 True,将会以 SSE(server-sent events)的形式以流式发送消息增量。消息流以 data: [DONE] 结尾。
|
|
|
];
|
|
|
|
|
|
- $client = new Client(['timeout' => 1200, 'verify' => false]);
|
|
|
- $result = $client->post($this->url, ['json' => $post_data, 'headers' => $this->headers]);
|
|
|
- $response = $result->getBody()->getContents();
|
|
|
- $response_arr = json_decode($response, true);
|
|
|
- $update_data = [];
|
|
|
- $content = '';
|
|
|
- if (isset($response_arr['choices']) && count($response_arr['choices']) > 0) {
|
|
|
- $content = isset($response_arr['choices'][0]['message']['content']) ? $response_arr['choices'][0]['message']['content'] : '';
|
|
|
- $update_data = [
|
|
|
- 'role' => 'assistant',
|
|
|
- 'content' => $response_arr['choices'][0]['message']['content'],
|
|
|
- 'usage' => isset($response_arr['usage']) ? $response_arr['usage'] : []
|
|
|
- ];
|
|
|
+ // 根据模型类型选择调用方法
|
|
|
+ $fullContent = '';
|
|
|
+ $usage = [];
|
|
|
+
|
|
|
+ if (in_array($model, ['deepseek-reasoner', 'deepseek-chat'])) {
|
|
|
+ // R1和V3模型使用DeepSeek API
|
|
|
+ $chatResult = $this->chatOnly($post_data);
|
|
|
+ } else {
|
|
|
+ // 其他模型使用火山引擎API
|
|
|
+ $chatResult = $this->volcEngineChatCompletion($post_data);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (is_array($chatResult)) {
|
|
|
+ $fullContent = $chatResult['fullContent'];
|
|
|
+ $usage = $chatResult['usage'];
|
|
|
}
|
|
|
|
|
|
// 处理获取到的剧本数据
|
|
|
- $script_content = handleScriptWords($content, $enable_emotion);
|
|
|
+ $script_content = handleScriptWords($fullContent, $enable_emotion);
|
|
|
$result = [
|
|
|
- 'origin_content' => $content,
|
|
|
+ 'origin_content' => $fullContent,
|
|
|
'roles' => getProp($script_content, 'roles'),
|
|
|
'words' => getProp($script_content, 'words'),
|
|
|
];
|
|
|
@@ -1378,7 +1380,6 @@ class DeepSeekService
|
|
|
* @return array
|
|
|
*/
|
|
|
public function chatWithFile($data) {
|
|
|
- // dd(handleScriptContent(''));
|
|
|
$script_id = getProp($data, 'script_id');
|
|
|
$file = getProp($data, 'file');
|
|
|
$content = getProp($data, 'content', '');
|
|
|
@@ -1435,28 +1436,32 @@ class DeepSeekService
|
|
|
'stream' => false
|
|
|
];
|
|
|
|
|
|
- $client = new Client(['timeout' => 1200, 'verify' => false]);
|
|
|
- $result = $client->post($this->url, ['json' => $post_data, 'headers' => $this->headers]);
|
|
|
- $response = $result->getBody()->getContents();
|
|
|
- $response_arr = json_decode($response, true);
|
|
|
-
|
|
|
- $content = '';
|
|
|
+ // 根据模型类型选择调用方法
|
|
|
+ $fullContent = '';
|
|
|
$usage = [];
|
|
|
- if (isset($response_arr['choices']) && count($response_arr['choices']) > 0) {
|
|
|
- $content = isset($response_arr['choices'][0]['message']['content']) ? $response_arr['choices'][0]['message']['content'] : '';
|
|
|
- $usage = isset($response_arr['usage']) ? $response_arr['usage'] : [];
|
|
|
+
|
|
|
+ if (in_array($model, ['deepseek-reasoner', 'deepseek-chat'])) {
|
|
|
+ // R1和V3模型使用DeepSeek API
|
|
|
+ $chatResult = $this->chatOnly($post_data);
|
|
|
+ } else {
|
|
|
+ // 其他模型使用火山引擎API
|
|
|
+ $chatResult = $this->volcEngineChatCompletion($post_data);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (is_array($chatResult)) {
|
|
|
+ $fullContent = $chatResult['fullContent'];
|
|
|
+ $usage = $chatResult['usage'];
|
|
|
}
|
|
|
- // \Log::info('返回值内容: '.$content);
|
|
|
|
|
|
$script_arr = [];
|
|
|
// 处理结果
|
|
|
- if ($content) {
|
|
|
- $script_arr = handleScriptContent($content);
|
|
|
+ if ($fullContent) {
|
|
|
+ $script_arr = handleScriptContent($fullContent);
|
|
|
}
|
|
|
|
|
|
return [
|
|
|
'script' => $script_arr,
|
|
|
- 'answer' => $content,
|
|
|
+ 'answer' => $fullContent,
|
|
|
'usage' => $usage
|
|
|
];
|
|
|
}
|
|
|
@@ -3665,22 +3670,22 @@ class DeepSeekService
|
|
|
'stream' => false // 是否流式输出,如果设置为 True,将会以 SSE(server-sent events)的形式以流式发送消息增量。消息流以 data: [DONE] 结尾。
|
|
|
];
|
|
|
|
|
|
- $client = new Client(['timeout' => 1200, 'verify' => false]);
|
|
|
- $result = $client->post($this->url, ['json' => $post_data, 'headers' => $this->headers]);
|
|
|
- $response = $result->getBody()->getContents();
|
|
|
- $response_arr = json_decode($response, true);
|
|
|
- $update_data = [];
|
|
|
- $content = '';
|
|
|
- if (isset($response_arr['choices']) && count($response_arr['choices']) > 0) {
|
|
|
- $content = isset($response_arr['choices'][0]['message']['content']) ? $response_arr['choices'][0]['message']['content'] : '';
|
|
|
- $update_data = [
|
|
|
- 'role' => 'assistant',
|
|
|
- 'content' => $response_arr['choices'][0]['message']['content'],
|
|
|
- 'usage' => isset($response_arr['usage']) ? $response_arr['usage'] : []
|
|
|
- ];
|
|
|
+ // 根据模型类型选择调用方法
|
|
|
+ $fullContent = '';
|
|
|
+
|
|
|
+ if (in_array($model, ['deepseek-reasoner', 'deepseek-chat'])) {
|
|
|
+ // R1和V3模型使用DeepSeek API
|
|
|
+ $chatResult = $this->chatOnly($post_data);
|
|
|
+ } else {
|
|
|
+ // 其他模型使用火山引擎API
|
|
|
+ $chatResult = $this->volcEngineChatCompletion($post_data);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (is_array($chatResult)) {
|
|
|
+ $fullContent = $chatResult['fullContent'];
|
|
|
}
|
|
|
|
|
|
- return $content;
|
|
|
+ return $fullContent;
|
|
|
}
|
|
|
|
|
|
/**
|