增加了选题api的调度,选题api的调度存在问题
This commit is contained in:
parent
db1319eb11
commit
b6910ee15b
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
"""
|
||||
API模型模块
|
||||
"""
|
||||
Binary file not shown.
Binary file not shown.
@ -47,7 +47,6 @@ class ContentWithPromptRequest(BaseModel):
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
router = APIRouter(
|
||||
prefix="/tweet",
|
||||
tags=["tweet"],
|
||||
responses={404: {"description": "Not found"}},
|
||||
)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
"""
|
||||
API服务模块
|
||||
"""
|
||||
Binary file not shown.
Binary file not shown.
@ -17,6 +17,8 @@ from utils.file_io import OutputManager
|
||||
from tweet.topic_generator import TopicGenerator
|
||||
from tweet.content_generator import ContentGenerator
|
||||
from tweet.content_judger import ContentJudger
|
||||
from api.services.prompt_builder import PromptBuilderService
|
||||
from api.services.prompt_service import PromptService
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@ -42,6 +44,10 @@ class TweetService:
|
||||
self.content_generator = ContentGenerator(ai_agent, config_manager, output_manager)
|
||||
self.content_judger = ContentJudger(ai_agent, config_manager, output_manager)
|
||||
|
||||
# 初始化提示词服务和构建器
|
||||
self.prompt_service = PromptService(config_manager)
|
||||
self.prompt_builder = PromptBuilderService(config_manager, self.prompt_service)
|
||||
|
||||
async def generate_topics(self, date: str, num_topics: int = 5,
|
||||
style: Optional[str] = None,
|
||||
target_audience: Optional[str] = None) -> Tuple[str, List[Dict[str, Any]]]:
|
||||
@ -64,8 +70,14 @@ class TweetService:
|
||||
topic_config.topic.date = date
|
||||
topic_config.topic.num = num_topics
|
||||
|
||||
# 生成选题
|
||||
topics = await self.topic_generator.generate_topics()
|
||||
# 使用PromptBuilderService构建提示词
|
||||
system_prompt, user_prompt = self.prompt_builder.build_topic_prompt(
|
||||
num_topics=num_topics,
|
||||
month=date
|
||||
)
|
||||
|
||||
# 使用预构建的提示词生成选题
|
||||
topics = await self.topic_generator.generate_topics_with_prompt(system_prompt, user_prompt)
|
||||
if not topics:
|
||||
logger.error("未能生成任何选题")
|
||||
return str(uuid.uuid4()), []
|
||||
@ -89,8 +101,11 @@ class TweetService:
|
||||
topic_index = topic.get('index', 'unknown')
|
||||
logger.info(f"开始为选题 {topic_index} 生成内容")
|
||||
|
||||
# 生成内容
|
||||
content = await self.content_generator.generate_content_for_topic(topic)
|
||||
# 使用PromptBuilderService构建提示词
|
||||
system_prompt, user_prompt = self.prompt_builder.build_content_prompt(topic, "content")
|
||||
|
||||
# 使用预构建的提示词生成内容
|
||||
content = await self.content_generator.generate_content_with_prompt(topic, system_prompt, user_prompt)
|
||||
|
||||
# 生成请求ID
|
||||
request_id = f"content_{datetime.now().strftime('%Y%m%d_%H%M%S')}_{str(uuid.uuid4())[:8]}"
|
||||
@ -136,6 +151,9 @@ class TweetService:
|
||||
topic_index = topic.get('index', 'unknown')
|
||||
logger.info(f"开始审核选题 {topic_index} 的内容")
|
||||
|
||||
# 使用PromptBuilderService构建提示词
|
||||
system_prompt, user_prompt = self.prompt_builder.build_judge_prompt(topic, content)
|
||||
|
||||
# 审核内容
|
||||
judged_data = await self.content_judger.judge_content(content, topic)
|
||||
judge_success = judged_data.get('judge_success', False)
|
||||
@ -178,7 +196,7 @@ class TweetService:
|
||||
contents = {}
|
||||
for topic in topics:
|
||||
topic_index = topic.get('index', 'unknown')
|
||||
content = await self.content_generator.generate_content_for_topic(topic)
|
||||
_, _, content = await self.generate_content(topic)
|
||||
contents[topic_index] = content
|
||||
|
||||
# 如果跳过审核,直接返回结果
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user