场景与模型
下面按功能给出推荐模型、选择理由和提示词。将【】替换为客户资料;每个场景都附有 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 完整代码
- 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())
import {run} from '@openai/agents';
import {iztroZiweiFastAgent} from 'openai-iztro-agents';
const prompt = `为以下客户生成完整的紫微斗数人生报告。
客户资料:公历 1990-06-15,10:00 出生,男性。
1. 本命命盘:列出十二宫主要星曜与四化,解读整体格局、事业、财富、感情和家庭。
2. 所有大限:逐段解读命盘中的全部大限,标明年龄范围和阶段重点。
3. 近五年:逐年分析 2026 至 2030 年,结合各年所在大限说明运势。
请一次输出完整报告,使用标题和表格。`;
const agent = iztroZiweiFastAgent({modelName: 'iztro-ziwei-v3-fast'});
const result = await run(agent, prompt);
console.log(result.finalOutput);
紫微多轮咨询
第一次提问,附上客户资料:
请根据以下资料,为客户解答紫微斗数问题。
客户资料:公历出生日期【出生日期】,出生时间【出生时间】,性别【性别】。
本次问题:【客户提交的问题】
后续在同一段对话中继续问:
客户追问:【客户的新问题】
例如,先问“分析这位客户 2027 年的事业”,再问“进一步展开上半年”。
客户读完报告后,也可以在原对话中继续提问。如果报告来自另一段对话,先补充客户资料和报告内容。
代码会打印会话 ID。保存后,Python 用 ChatSession(conversation_id=已保存的会话ID),TypeScript 用 new ChatSession({conversationId: 已保存的会话ID}) 继续原对话。
查看 Python / TypeScript 完整代码
- 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())
import {run} from '@openai/agents';
import {ChatSession, iztroZiweiAgent} from 'openai-iztro-agents';
const questions = [
"客户资料:公历 1990-06-15,10:00 出生,男性。请分析这位客户 2027 年的事业。",
"客户追问:结合前面的分析,比较 2028 年与 2027 年的事业变化。"
];
// 使用产品中的客户 ID;同一段咨询复用会话。
const session = new ChatSession({externalUserId: 'customer_123'});
try {
for (const question of questions) {
const agent = iztroZiweiAgent({modelName: 'iztro-ziwei-v3'});
const result = await run(agent, question, {session});
console.log(result.finalOutput);
}
console.log("sessionId:", session.sessionId);
} finally {
await session.close();
}
一次生成详细奇门分析
填写客户要分析的事项、当前情况和问题:
为客户生成一份奇门分析。
事项:【客户要分析的事项】
当前情况:【已发生的情况、待选方案】
客户问题:【希望了解的结果或行动时间】
问事时间:【客户当地日期、时间及时区】
请给出判断、盘面依据和下一步建议;客户问到时间时,再分析应期。
例如:事项填“渠道合作签约”,当前情况填“已沟通两次,分成比例未定”,客户问题填“后续如何推进,何时适合再沟通”。
问事时间填写客户提问时的当地日期、时间和时区。计划签约日期写在事项资料中。
代码以 UTC+08:00 为例,每次提问都会传入当时的问事时间。接入产品时使用客户实际时区。
查看 Python / TypeScript 完整代码
- 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())
import {run} from '@openai/agents';
import {iztroQimenFastAgent} from 'openai-iztro-agents';
// 示例客户位于 UTC+08:00;请使用实际客户的时区。
const questionTime = () =>
new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString().replace('Z', '+08:00');
const prompt = `为客户生成详细的奇门分析。
事项:渠道合作签约。
当前情况:已沟通两次,分成比例和上线时间未定。
客户问题:现在如何推进?何时适合再次沟通?
请给出判断、盘面依据和下一步建议,并说明应期依据。`;
const agent = iztroQimenFastAgent({modelName: 'iztro-qimen-v3-fast',
modelSettings: {providerData: {metadata: {current_datetime: questionTime()}}},
});
const result = await run(agent, prompt);
console.log(result.finalOutput);
奇门多轮咨询
第一次使用上面的事项模板,后续在同一段对话中补充进展、继续提问:
继续分析本会话中的事项。
最新进展:【新增情况,没有则留空】
客户追问:【客户的新问题】
代码会打印会话 ID。保存后,Python 用 ChatSession(conversation_id=已保存的会话ID),TypeScript 用 new ChatSession({conversationId: 已保存的会话ID}) 继续原对话。
代码以 UTC+08:00 为例,每次提问都会传入当时的问事时间。接入产品时使用客户实际时区。
查看 Python / TypeScript 完整代码
- 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())
import {run} from '@openai/agents';
import {ChatSession, iztroQimenAgent} from 'openai-iztro-agents';
// 示例客户位于 UTC+08:00;请使用实际客户的时区。
const questionTime = () =>
new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString().replace('Z', '+08:00');
const questions = [
"客户正在洽谈渠道合作,已沟通两次,分成比例未定。请分析后续如何推进。",
"客户补充:对方提出先试行一个月。这个变化对前面的判断有什么影响?"
];
// 使用产品中的客户 ID;同一段咨询复用会话。
const session = new ChatSession({externalUserId: 'customer_123'});
try {
for (const question of questions) {
const agent = iztroQimenAgent({modelName: 'iztro-qimen-v3',
modelSettings: {providerData: {metadata: {current_datetime: questionTime()}}},
});
const result = await run(agent, question, {session});
console.log(result.finalOutput);
}
console.log("sessionId:", session.sessionId);
} finally {
await session.close();
}