using BuildFlow.Infrastructure.AI; using Xunit; namespace BuildFlow.Rag.Tests; /// /// OpenAI 兼容流式响应解析测试。覆盖 LM Studio 返回的 content 与 reasoning_content 分离场景。 /// public class OpenAiCompatibleChatStreamParserTests { [Fact] public void ReadContentDeltaShouldReturnOnlyVisibleContent() { const string data = """ {"choices":[{"delta":{"content":"你好"}}]} """; var chunk = OpenAiCompatibleChatStreamParser.ReadContentDelta(data); Assert.Equal("你好", chunk); } [Fact] public void ReadContentDeltaShouldIgnoreReasoningContent() { const string data = """ {"choices":[{"delta":{"reasoning_content":"这里是推理过程"}}]} """; var chunk = OpenAiCompatibleChatStreamParser.ReadContentDelta(data); Assert.Null(chunk); } [Fact] public void ReadContentDeltaShouldIgnoreDoneSentinel() { var chunk = OpenAiCompatibleChatStreamParser.ReadContentDelta("[DONE]"); Assert.Null(chunk); } }