跳到主要内容

场景与模型

下面按功能给出推荐模型、选择理由和提示词。将【】替换为客户资料;每个场景都附有 Python 和 TypeScript 代码。

你要做的功能推荐模型选择理由提示词与代码
一次生成完整紫微人生报告iztro-ziwei-v3-fast合并命盘、大限和流年数据,按指定结构一次生成报告命盘、所有大限、近五年
紫微多轮咨询、报告后追问iztro-ziwei-v3根据每轮问题,按需补充分项解读连续对话
一次生成详细奇门分析iztro-qimen-v3-fast收齐事项资料,围绕问题一次输出完整分析事项分析
奇门多轮咨询iztro-qimen-v3结合客户持续补充的情况和问题继续分析连续追问

一次性报告推荐 fast,多轮咨询推荐 v3。报告中要覆盖哪些内容、写多详细,直接在提示词中说明。

四个模型都支持完整报告和多轮对话。思考设置可以单独调整:v3 默认开启,fast 默认关闭。需要修改时,见模型设置。

运行代码前,按SDK 快速开始安装并设置 ZIWEI_API_KEY。代码中的客户资料仅作演示;更换模型时,修改 Python 的 model_name 或 TypeScript 的 modelName 即可。

一次生成完整人生报告​

填写客户的公历出生日期、出生时间和性别,以及报告要覆盖的年份:

为以下客户生成一份完整的紫微斗数人生报告。
客户资料:公历出生日期【出生日期】,出生时间【出生时间】,性别【性别】。

报告包括:
1. 本命命盘:列出十二宫主要星曜与四化,解读整体格局及事业、财富、感情、家庭。
2. 所有大限:按命盘中的每个大限逐段分析,标明年龄范围与阶段重点,覆盖全部大限。
3. 近五年:逐年分析【开始年份】至【结束年份】,结合各年所在大限说明运势。

请一次输出完整报告,使用 Markdown 标题和表格。资料不全时先指出缺失项。

例如,从 2026 年开始的五年,填写 2026 至 2030 年。

如果页面需要展示可交互的命盘图,需另外接入排盘库 iztro。这段提示词生成的是文字与表格报告。

查看 Python / TypeScript 完整代码
import asyncio
from agents import Runner
from iztro_agents import iztro_ziwei_fast_agent

PROMPT = """为以下客户生成完整的紫微斗数人生报告。
客户资料:公历 1990-06-15,10:00 出生,男性。
1. 本命命盘:列出十二宫主要星曜与四化,解读整体格局、事业、财富、感情和家庭。
2. 所有大限:逐段解读命盘中的全部大限,标明年龄范围和阶段重点。
3. 近五年:逐年分析 2026 至 2030 年,结合各年所在大限说明运势。
请一次输出完整报告,使用标题和表格。"""

async def main():
agent = iztro_ziwei_fast_agent(model_name="iztro-ziwei-v3-fast")
result = await Runner.run(agent, PROMPT)
print(result.final_output)

asyncio.run(main())

紫微多轮咨询​

第一次提问,附上客户资料:

请根据以下资料,为客户解答紫微斗数问题。
客户资料:公历出生日期【出生日期】,出生时间【出生时间】,性别【性别】。
本次问题:【客户提交的问题】

后续在同一段对话中继续问:

客户追问:【客户的新问题】

例如,先问“分析这位客户 2027 年的事业”,再问“进一步展开上半年”。

客户读完报告后,也可以在原对话中继续提问。如果报告来自另一段对话,先补充客户资料和报告内容。

代码会打印会话 ID。保存后,Python 用 ChatSession(conversation_id=已保存的会话ID),TypeScript 用 new ChatSession({conversationId: 已保存的会话ID}) 继续原对话。

查看 Python / TypeScript 完整代码
import asyncio
from agents import Runner
from iztro_agents import ChatSession, iztro_ziwei_agent

QUESTIONS = [
"客户资料:公历 1990-06-15,10:00 出生,男性。请分析这位客户 2027 年的事业。",
"客户追问:结合前面的分析,比较 2028 年与 2027 年的事业变化。"
]

async def main():
# 使用产品中的客户 ID;同一段咨询复用会话。
session = ChatSession(external_user_id="customer_123")
try:
for question in QUESTIONS:
agent = iztro_ziwei_agent(model_name="iztro-ziwei-v3")
result = await Runner.run(agent, question, session=session)
print(result.final_output)
print("session_id:", session.session_id)
finally:
await session.close()

asyncio.run(main())

一次生成详细奇门分析​

填写客户要分析的事项、当前情况和问题:

为客户生成一份奇门分析。
事项:【客户要分析的事项】
当前情况:【已发生的情况、待选方案】
客户问题:【希望了解的结果或行动时间】
问事时间:【客户当地日期、时间及时区】

请给出判断、盘面依据和下一步建议;客户问到时间时,再分析应期。

例如:事项填“渠道合作签约”,当前情况填“已沟通两次,分成比例未定”,客户问题填“后续如何推进,何时适合再沟通”。

问事时间填写客户提问时的当地日期、时间和时区。计划签约日期写在事项资料中。

代码以 UTC+08:00 为例,每次提问都会传入当时的问事时间。接入产品时使用客户实际时区。

查看 Python / TypeScript 完整代码
import asyncio
from datetime import datetime, timedelta, timezone
from agents import ModelSettings, Runner
from iztro_agents import iztro_qimen_fast_agent

# 示例客户位于 UTC+08:00;请使用实际客户的时区。
CUSTOMER_TIMEZONE = timezone(timedelta(hours=8))

PROMPT = """为客户生成详细的奇门分析。
事项:渠道合作签约。
当前情况:已沟通两次,分成比例和上线时间未定。
客户问题:现在如何推进?何时适合再次沟通?
请给出判断、盘面依据和下一步建议,并说明应期依据。"""

async def main():
agent = iztro_qimen_fast_agent(model_name="iztro-qimen-v3-fast",
model_settings=ModelSettings(metadata={
"current_datetime": datetime.now(CUSTOMER_TIMEZONE).isoformat(),
}),
)
result = await Runner.run(agent, PROMPT)
print(result.final_output)

asyncio.run(main())

奇门多轮咨询​

第一次使用上面的事项模板,后续在同一段对话中补充进展、继续提问:

继续分析本会话中的事项。
最新进展:【新增情况,没有则留空】
客户追问:【客户的新问题】

代码会打印会话 ID。保存后,Python 用 ChatSession(conversation_id=已保存的会话ID),TypeScript 用 new ChatSession({conversationId: 已保存的会话ID}) 继续原对话。

代码以 UTC+08:00 为例,每次提问都会传入当时的问事时间。接入产品时使用客户实际时区。

查看 Python / TypeScript 完整代码
import asyncio
from datetime import datetime, timedelta, timezone
from agents import ModelSettings, Runner
from iztro_agents import ChatSession, iztro_qimen_agent

# 示例客户位于 UTC+08:00;请使用实际客户的时区。
CUSTOMER_TIMEZONE = timezone(timedelta(hours=8))

QUESTIONS = [
"客户正在洽谈渠道合作,已沟通两次,分成比例未定。请分析后续如何推进。",
"客户补充:对方提出先试行一个月。这个变化对前面的判断有什么影响?"
]

async def main():
# 使用产品中的客户 ID;同一段咨询复用会话。
session = ChatSession(external_user_id="customer_123")
try:
for question in QUESTIONS:
agent = iztro_qimen_agent(model_name="iztro-qimen-v3",
model_settings=ModelSettings(metadata={
"current_datetime": datetime.now(CUSTOMER_TIMEZONE).isoformat(),
}),
)
result = await Runner.run(agent, question, session=session)
print(result.final_output)
print("session_id:", session.session_id)
finally:
await session.close()

asyncio.run(main())

代码示例:发送一次请求、保存并继续对话。