使用python代码调用dify

import re
import json
import requests

def dify_data(inputstr,num):
    
    api_url = "*****************"
    api_key = "*****************"
#组装数据,num和input为输入的数据,同时在dify定义
    data = {
        "inputs": {
            "num": num,
            "input": inputstr
        },
        "response_mode": "blocking",
        "user": "abc-123"
    }

    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }        

    response = requests.post(api_url, headers=headers, data=json.dumps(data), stream=True)

    if response.status_code == 200:
        print("Request successful")
        print("Response:", response.json())
        json_data = extract_json_from_response(response.json())
        print("截取后的结果:", json_data)
        return json_data
    else:
        print(f"Request failed with status code: {response.status_code}")
        print("Error:", response.text)
        return None


def extract_json_from_response(response):
        """
        从API响应中提取并转换JSON数据
        """
        try:
            json_str = response['data']['outputs']['reuslt']
            pattern = r'```json\n(.*?)```'
            match = re.search(pattern, json_str, re.DOTALL)
            if not match:
                raise ValueError("未找到JSON数据")
            json_data = json.loads(match.group(1))
            return json_data
        except KeyError as e:
            raise KeyError(f"响应中缺少必要字段: {e}")
        except json.JSONDecodeError as e:
            raise ValueError(f"JSON解析错误: {e}")


#直接调用即可
num=1
inputstr="你好啊"
result_data=dify_data(inputstr,num)
print(result_data)

你可能感兴趣的:(python,前端,开发语言)