diff --git a/README.md b/README.md index 243f153..8857131 100644 --- a/README.md +++ b/README.md @@ -142,11 +142,13 @@ pip install numpy pandas opencv-python pillow openai ## API 集成 / 流式输出使用 (Streaming Usage) -为了方便将 AI 生成的内容以流式传输(例如,用于 API 端点),`AI_Agent` 类提供了一个 `work_stream` 方法。与返回完整文本的 `work` 方法不同,`work_stream` 返回一个 Python 生成器 (generator)。 +`AI_Agent` 类提供了 `work_stream` 方法,用于获取 AI 生成内容的流式输出。该方法返回一个 Python 生成器 (generator),你可以迭代它来逐块获取 AI 生成的文本。 -你可以迭代这个生成器来逐块获取 AI 生成的文本。 +**同时处理流式块并获取完整结果:** -**基本用法示例:** +如果你既需要实时处理(或传输)每个文本块,又想在流结束后得到完整的拼接结果,可以在迭代生成器的同时进行拼接。 + +**用法示例:** ```python import os @@ -197,12 +199,21 @@ try: presence_penalty ) - # 5. 迭代生成器获取文本块 + # 5. 迭代生成器,处理块并拼接完整结果 print("Streaming response:") + full_response = "" # 初始化空字符串用于拼接 for chunk in stream_generator: - print(chunk, end="", flush=True) # 处理文本块,例如发送给客户端 + # 处理实时块,例如打印或发送给客户端 + print(chunk, end="", flush=True) + # 拼接完整结果 + full_response += chunk - print("\\nStream finished.") + print("\\n--- Stream finished ---") + + # 6. 使用拼接好的完整结果 + print("\\n--- Reconstructed Full Response ---") + print(full_response) + # 你可以在这里对 full_response 进行进一步处理 except Exception as e: print(f"An error occurred: {e}") @@ -212,4 +223,6 @@ finally: ``` -这个返回的 `stream_generator` 可以很容易地集成到 Web 框架(如 Flask、FastAPI)的流式响应 (StreamingResponse) 中,以实现向客户端的实时流式输出。参考 `examples/test_stream.py` 获取可运行的示例。 \ No newline at end of file +这个模式允许你灵活地利用流式输出,同时在需要时也能访问到最终的完整文本。参考 `examples/test_stream.py` 获取可运行的示例(该示例也包含了拼接逻辑,只是默认注释了最后的打印)。 + +**注意:** 如果你只需要最终的完整结果而不需要流式处理,可以直接调用 `ai_agent.work(...)` 方法,它会内部处理好拼接并直接返回结果字符串。 \ No newline at end of file