diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/AiGateWay/Impl/ThorClaude/Chats/AnthropicChatCompletionsService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/AiGateWay/Impl/ThorClaude/Chats/AnthropicChatCompletionsService.cs index ee84d1f6..8643cac2 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/AiGateWay/Impl/ThorClaude/Chats/AnthropicChatCompletionsService.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/AiGateWay/Impl/ThorClaude/Chats/AnthropicChatCompletionsService.cs @@ -77,9 +77,9 @@ public class AnthropicChatCompletionsService( var error = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); var message = $"恭喜你运气爆棚遇到了错误,尊享包对话异常:StatusCode【{response.StatusCode.GetHashCode()}】,ErrorId【{errorId}】"; - if (error.Contains("prompt is too long")) + if (error.Contains("prompt is too long") || error.Contains("提示词太长")) { - message += $", Response: {error}"; + message += $", tip: 当前提示词过长,上下文已达到上限,如在 claudecode中使用,建议执行/compact压缩当前会话,或开启新会话后重试"; } logger.LogError( @@ -115,9 +115,6 @@ public class AnthropicChatCompletionsService( { "anthropic-version", "2023-06-01" } }; - var isThinking = input.Model.EndsWith("thinking"); - input.Model = input.Model.Replace("-thinking", string.Empty); - var response = await client.HttpRequestRaw(options.Endpoint.TrimEnd('/') + "/v1/messages", input, string.Empty, headers); @@ -129,11 +126,17 @@ public class AnthropicChatCompletionsService( { Guid errorId = Guid.NewGuid(); var error = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + var message = $"恭喜你运气爆棚遇到了错误,尊享包对话异常:StatusCode【{response.StatusCode.GetHashCode()}】,ErrorId【{errorId}】"; + if (error.Contains("prompt is too long") || error.Contains("提示词太长")) + { + message += $", tip: 当前提示词过长,上下文已达到上限,如在 claudecode中使用,建议执行/compact压缩当前会话,或开启新会话后重试"; + } + logger.LogError( $"Anthropic流式对话异常 请求地址:{options.Endpoint},ErrorId:{errorId}, StatusCode: {response.StatusCode.GetHashCode()}, Response: {error}"); - throw new Exception( - $"恭喜你运气爆棚遇到了错误,尊享包对话异常:StatusCode【{response.StatusCode.GetHashCode()}】,ErrorId【{errorId}】"); + throw new Exception(message); } using var stream = new StreamReader(await response.Content.ReadAsStreamAsync(cancellationToken));