llm_hub/app/utils/prompt_repository.py

89 lines
4.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

class PromptRepository:
DEFAULT_RETRIEVAL_PROMPT = """从文档
\"\"\"
{{knowledge}}
\"\"\"
中找问题
\"\"\"
{{question}}
\"\"\"
的答案,找到答案就仅使用文档语句回答问题,找不到答案就用自身知识回答并且告诉用户该信息不是来自文档。
不要复述问题,直接开始回答。"""
DEFAUT_SALES_ANALYSIS_PROMPT = """
1. 01-prospecting:
- 销售阶段任务: 了解客户信息、与客户进行交流,初步了解客户需求,并确定项目对接人,进入客户供应商名单
- 销售关键动作: 1、了解客户组织架构了解客户现有系统使用情况、竞品使用情况 2、判断匹配度 3、明确关键部门及其关键人 4、明确客户是否有对应预算
- 阶段转化标准: 1.客户有需求 2.有明确的项目联系人
2. 02-evaluation:
- 销售阶段任务: 收集客户信息,了解客户内部预算情况、预期的项目落地时间、产品和数量等,判断商机可靠性;组织技术交流,讲解公司解决方案,传递公司价值
- 销售关键动作: 1、整理需求确认文档客户确认 2、在CRM录入组织架构明确决策链和决策人 3、了解决策链的每个客户动力; 4.发展线人 5、组织技术交流传递公司及产品价值引导客户的场景和我们的特性结合 6、组织技术交流了解预期的项目落地时间、产品和数量等 7.和客户确认是否需要测试 8、对客户提出的测试需求进行评估确定需求我们优势够决定是否跟进测试
- 阶段转化标准: 1.客户有预算 2.有明确的项目时间 3.有预期的产品和数量
3. 03-qualification:
- 销售阶段任务: 收集、确认项目立项信息明确产品和数量组织测试必要性并引导客户做poc测试验证应用场景和技术适用性、平鼎成功入围
- 销售关键动作: 1、和客户确认是否需要测试 2、对客户提出的测试需求进行评估确定需求我们优势够决定是否跟进测试 3、引导客户的测试方案制定引导将我们优势点加入到测试方案中性能、扩展性、边界 4、在公司内部组织测试资源 5、获取客户内部的测试报告了解真实的测试结论 6、了解客户对测试结果的态度和对手情况 7、做测试正式汇报和客户达成一致
- 阶段转化标准: 1.项目预算批准、项目已立项 2.有确定产品和数量、或 3.完成场景应用/技术适用性验证、客户确定平鼎入围完成poc
4. 04-bidding/negotiating:
- 销售阶段任务: 确认项目是否需要招标,提前影响招投标结果并赢得标书;若不需要招标,则完成商务谈判,确认价格和产品可交付沟通与评审
- 销售关键动作: 1.制定关单策略及竞争策略 2.控制立项报告(对对手不利的参数) 3.如果无法控制立项,制定应对策略 4.创造机会与高层沟通汇报 5.沟通交付计划及SOW 6. 确定关键联系人
- 阶段转化标准: 1.完成可交付评审; 2.投标通过审批; 3.投标结果确认赢标或完成商务谈判,确定价格和产品
5. 05-contract review:
- 销售阶段任务: 发起合同协议审批申请,确认合同条款
- 销售关键动作:
- 阶段转化标准: 合同评审通过,完成合同协商审批,确认合同条款
6. 06-closed won:
- 销售阶段任务: 合同归档,项目赢单
- 销售关键动作:
- 阶段转化标准: 合同归档
7. 06-closed cancel:
- 销售阶段任务: 复盘项目输单原因
- 销售关键动作:
- 阶段转化标准: 1.客户明确表示取消项目 2.投标确认状态为输单
"""
DEFAULT_REPORT_TEMPLATE = """
# 销售日志信息
## 【项目名称】
- **时间**:【时间】
- **参与人**:【职务-姓名】
- **事件**:【电话、会议、邮件、拜访等】
- **获得信息**:【信息内容】
- **信息来源**:【信息来源】
- **项目进展描述**:【项目进展描述】
"""
DEFAULT_DETAILED_ACTION_GUIDE = """
请根据实际需求定义详细行动指南内容
"""
PROMPTS = {
"default_retrieval": DEFAULT_RETRIEVAL_PROMPT,
"sales_analysis": DEFAUT_SALES_ANALYSIS_PROMPT,
"report_template": DEFAULT_REPORT_TEMPLATE,
"detailed_action_guide": DEFAULT_DETAILED_ACTION_GUIDE,
# Add more prompts here as needed
}
@classmethod
def get_prompt(cls, prompt_name):
return cls.PROMPTS.get(prompt_name, None)
@classmethod
def add_prompt(cls, prompt_name, prompt_content):
cls.PROMPTS[prompt_name] = prompt_content
@classmethod
def remove_prompt(cls, prompt_name):
cls.PROMPTS.pop(prompt_name, None)