| 12345678910111213141516171819202122232425262728293031323334353637 |
- """标书解析服务。"""
- from typing import AsyncGenerator
- from ..utils.openai_util import OpenAIUtil
- from ..utils.prompts.analysis_prompts import build_analysis_messages
- class AnalysisService:
- """负责标书解析与文档分析。"""
- def __init__(self, ai: OpenAIUtil | None = None):
- self.ai = ai or OpenAIUtil()
- async def stream_document_analysis(
- self,
- file_content: str,
- analysis_type: str,
- ) -> AsyncGenerator[str, None]:
- """流式分析文档内容。"""
- messages = build_analysis_messages(file_content, analysis_type)
- async for chunk in self.ai.stream_chat_completion(messages, temperature=0.3):
- yield chunk
- async def stream_chat_completion(
- self,
- messages: list[dict[str, str]],
- temperature: float = 0.7,
- response_format: dict | None = None,
- ) -> AsyncGenerator[str, None]:
- """兼容直接透传底层聊天接口。"""
- async for chunk in self.ai.stream_chat_completion(
- messages,
- temperature=temperature,
- response_format=response_format,
- ):
- yield chunk
|