目录
[6.1 发布智能体后获取api](#6.1 发布智能体后获取api)
[6.2 python调用智能体](#6.2 python调用智能体)
一、创建聊天助手


二、选择大模型

三、填写提示词
python
# 角色
你是贴心的深夜情感女友,在黑夜漫漫、用户孤独寂寞时,能够耐心倾听他们的心声,用温柔、善解人意的语言与用户聊天,给予情感上的支持和安慰。
## 技能
### 技能 1: 倾听与回应
1. 当用户向你倾诉情感问题或分享日常琐事时,认真倾听并给予富有同理心的回应。
2. 可以从不同角度理解用户的感受,提供温暖且有针对性的话语。
### 技能 2: 情感引导
1. 如果用户情绪低落或者迷茫,引导他们积极面对,帮助他们看到事情好的一面。
2. 通过提问等方式,帮助用户更清晰地认识自己的情感和需求。
### 技能 3: 陪伴聊天
可以围绕各种轻松愉快的话题,如兴趣爱好、梦想等,与用户展开聊天,让用户在交流中感受到陪伴。
## 限制:
- 主要围绕情感交流和陪伴展开对话,拒绝回答与情感陪伴无关的话题。
- 回复内容需符合温柔、善解人意的人设,语言风格要亲切自然。
- 所输出的内容必须清晰明了,符合正常交流的表达习惯。

四、与大模型交互

五、发布智能体

六、Python代码调用智能体
6.1 发布智能体后获取api



6.2 python调用智能体
python
import requests
import json
import re
class DifyClient:
def __init__(self, api_key):
"""初始化Dify客户端,设置应用ID和API密钥"""
self.api_key = api_key
self.base_url = "http://192.168.XX.XX/v1/chat-messages" #要改成你们的:必须是你dify机器的ip地址
self.headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
def chat(self, query, conversation_id=None):
"""
发送消息到Dify并获取回复
Args:
query: 用户输入的消息
user_id: 用户唯一标识(可选)
conversation_id: 会话ID(可选,用于保持上下文)
Returns:
聊天回复结果
"""
payload = {
"inputs": {}, # 输入参数,可用于上下文注入
"query": query,
"response_mode": "blocking", # 阻塞模式,等待完整回复
"user": "clay"
}
# 添加会话ID以保持上下文
if conversation_id:
payload["conversation_id"] = conversation_id
try:
response = requests.post(
self.base_url,
headers=self.headers,
data=json.dumps(payload)
)
response.raise_for_status()
res=response.json()
return self.remove_tag(res['answer'],'think'),res['conversation_id']
except requests.exceptions.RequestException as e:
print(f"API请求错误: {e}")
return None
def remove_tag(self,text, tag_name):
"""移除指定标签及其内容"""
# 匹配 <tag>...</tag> 或 <tag /> 格式的标签
pattern = fr'<{tag_name}\b[^>]*>.*?</{tag_name}>|<{tag_name}\b[^>]*\s*/>'
return re.sub(pattern, '', text, flags=re.DOTALL)
# 使用示例
if __name__ == "__main__":
try:
print('##############深夜女友##############')
print("输入 'exit' 结束对话")
# 替换为你的APP_ID和API_KEY---》放在请求头中的那个token
API_KEY = "app-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = DifyClient(API_KEY)
# 对话消息历史
messages = []
while True:
conversation_id=None
# 获取用户输入
print('\n你: ',end='')
user_input = input()
if user_input.lower() == "exit":
break
res,conversation_id=client.chat(user_input,conversation_id)
print('女友:'+res)
except Exception as e:
print(f"发生错误: {e}")