admin 管理员组

文章数量: 1184232

使用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"])

本文标签: 上传文件 接口 Dify api