
反思/自我反思有点被低估了。如果您的应用程序依赖于提示,我强烈建议您探索这个概念。实施起来并不难,反思技术可以帮助迭代地完善 llm 响应。
系统特点:功能简洁实用。目前互联网上最简洁的企业网站建设系统!原创程序代码。非网络一般下载后修改的代码。更安全。速度快!界面模版分离。原创的分离思路,完全不同于其他方式,不一样的简单感受!搜索引擎优化。做了基础的seo优化。对搜索引擎更友好系统功能关于我们:介绍企业介绍类信息,可自由添加多个介绍栏目!资讯中心:公司或行业资讯类内容展示。可自由添加多个资讯内容!产品展示:支持类别设置,可添加产品图片
0
from mirascope.core import BaseMessageParam, ResponseModelConfigDict, openai
from pydantic import BaseModel
import os
os.environ["OPENAI_API_KEY"] = ""
class Review(BaseModel):
issues: list[str]
is_good: bool
model_config = ResponseModelConfigDict(strict=True)
class Story(BaseModel):
story: str
model_config = ResponseModelConfigDict(strict=True)
class StoryWriter(BaseModel):
keywords: list[str]
generator_history: list[openai.OpenAIMessageParam] = []
@openai.call(
"gpt-4o-mini",
response_model=Story,
json_mode=True,
call_params={"temperature": 0.8},
)
def generator(self, query: str) -> list[openai.OpenAIMessageParam]:
return [
BaseMessageParam(
role="system",
content="You are an expert in writing short moral stories for kids below the age of 10.",
),
*self.generator_history,
]
@openai.call(
"gpt-4o-mini",
response_model=Review,
json_mode=True,
call_params={"temperature": 0.1},
)
def reviewer(self, story: str) -> list[openai.OpenAIMessageParam]:
return [
BaseMessageParam(
role="system",
content="You are an expert in reviewing short moral stories for kids below the age of 10, checking whether all the keywords were used effectively and identifying issues related to relevance and ease of understanding",
),
BaseMessageParam(
role="user",
content=f""" Review the given moral story for kids. Check if the story uses all the given keywords. Also check if the story is reasonably realistic, engaging and uses basic vocabulary that is easy to understand for kids below the age of 10. Return the issues. Finally, return True if the moral story is good enough for kids and contains all the keywords. \n story: {story} \n keywords: {self.keywords}""",
),
]
def run(self, steps=3) -> str:
query = f"""Generate a moral story for kids, using all the given keywords. Return only the story. {self.keywords}"""
self.generator_history += [
BaseMessageParam(role="user", content=query),
]
story = ""
for _ in range(steps):
generator_response = self.generator(query)
story = generator_response.story
reviewer_response = self.reviewer(story)
if reviewer_response.is_good:
break
query = f"""Use the given feedback to improve the story. Return only the story."""
self.generator_history += [
BaseMessageParam(role="assistant", content=generator_response.story),
BaseMessageParam(
role="user",
content=" ".join(reviewer_response.issues) + " " + query,
),
]
print(self.generator_history)
return story
story = StoryWriter(
keywords=[
"elephant",
"boy",
"strong",
"funny",
"good",
"ride",
"Nikolas",
"road",
"cap",
"car",
]
).run()
print("==================")
print("result", story)
以上就是理解自我反思的简单代码(代理设计模式)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号