对接Dify的api接口 上传文件、发起对话、删除对话

使用dify搭建了本地模型,设计了一个工作流。

使用python调用dify的api接口。

Python基本 dify.py如下

import requests

class DifyChat:
    def __init__(self, api_url, api_key):
        self.api_url = api_url
        self.api_key = api_key
        self.headers = {
            'Authorization': f'Bearer {self.api_key}',
            'Content-Type': 'application/json'
        }

    def create_chat(self, chat_name):
        url = f'{self.api_url}/chats/create'
        data = {'chat_name': chat_name}
        response = requests.post(url, json=data, headers=self.headers)
        return response.json()

    def send(self,  message,file_id):
        url = f'{self.api_url}/chat-messages'
    
        data = {
                "inputs":{},
                "files": [{
                        "type": "image",
                        "transfer_method": "local_file",
                        "upload_file_id": file_id
                    }],
                "query": message,
                "response_mode": "blocking",
                "conversation_id": "",
                "user": "abc-123"
            }


        response = requests.post(url, json=data, headers=self.headers)
        return response.json()
        
    def delete(self,conver_id):
        url=f'{self.api_url}/conversations/{conver_id}'
        data = {
            "user": "abc-123"
        }
        response = requests.delete(url, json=data, headers=self.headers)
        return response.json()
    
    def upload_file(self, file_path):
        url = f'{self.api_url}/files/upload'
        files = {'file': ("a.jpg", open(file_path, 'rb'), 'image/jpg')}
        headers={
            'Authorization': f'Bearer {self.api_key}',
            "user":"abc-12"
        }
        response = requests.post(url, files=files, headers=headers)
        return response.json()

# 示例
if __name__ == "__main__":
    api_url = "http://127.0.0.1/v1"
    api_key = "app-xxxxxxxxxxxxxxxxxxxx"

    chat = DifyChat(api_url, api_key)

    # 发送消息
    ret=chat.upload_file("./a.jpg")
    file_id=ret["id"]
    
    ret = chat.send(".",file_id)
    message_id=ret["message_id"]
    conver_id=ret["conversation_id"]
    
    ret=chat.delete(conver_id)
    
    print(ret)
    # print(ret["answer"])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值