antdx 如何接入dify
import { UserOutlined } from '@ant-design/icons';
import { Bubble, Sender, useXAgent, useXChat } from '@ant-design/x';
import { Flex, type GetProp } from 'antd';
import React from 'react';
const roles: GetProp<typeof Bubble.List, 'roles'> = {
ai: {
placement: 'start',
avatar: { icon: <UserOutlined />, style: { background: '#fde3cf' } },
},
local: {
placement: 'end',
avatar: { icon: <UserOutlined />, style: { background: '#87d068' } },
},
};
const App = () => {
const [content, setContent] = React.useState('');
// Agent for request
const [agent] = useXAgent<string, { message: string }, string>({
request: async ({ message }, { onSuccess, onUpdate }) => {
const abc = { "query": message, "response_mode": "streaming", "model_config": { "model": { "provider": "langgenius/xinference/xinference", "name": "DeepSeek-R1-Distill-Qwen-32B", "mode": "chat", "completion_params": { "stop": [] } }, "pre_prompt": "", "created_by": "26bbb57f-1f7c-4e70-a866-eb36f53c0d18", "created_at": 1760510873, "updated_by": "26bbb57f-1f7c-4e70-a866-eb36f53c0d18", "updated_at": 1760510873, "dataset_configs": { "retrieval_model": "multiple", "top_k": 4, "datasets": { "datasets": [] } } }, "conversation_id": "", "files": [], "inputs": {} }
const url = '/dify/console/api/apps/f2fc94b1-d266-4ff1-b18c-fd762523b43d/chat-messages'
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${localStorage.getItem('access_token')}`,
},
body: JSON.stringify(abc),
});
if (!response.body) throw new Error('No response body');
const reader = response.body.getReader();
const decoder = new TextDecoder('utf-8');
let buffer = '';
var a = "";
while (true) {
const sth = await reader.read();
const { done, value } = sth;
if (done) break;
buffer += decoder.decode(value, { stream: true });
const lines = buffer.split('\n');
buffer = lines.pop() || '';
for (const line of lines) {
if (line.startsWith('data:')) {
const data = line.slice(5).trim();
if (JSON.parse(data).event == 'message_end') {
onSuccess(a);
return;
}
a += JSON.parse(data)?.answer || "";
onUpdate(a);
}
}
}
},
});
// Chat messages
const { onRequest, messages } = useXChat({
agent,
});
return (
<div className='flex' style={{ height: "100%", overflow: "hidden", flexDirection: "column", padding: "16px" }}>
<Bubble.List
roles={roles}
style={{ flex: 1, overflowY: 'auto', padding: '16px' }}
items={messages.map(({ id, message, status }) => ({
key: id,
loading: status === 'loading',
role: status === 'local' ? 'local' : 'ai',
content: message,
}))}
/>
<Sender
loading={agent.isRequesting()}
value={content}
onChange={setContent}
onSubmit={(nextContent) => {
onRequest(nextContent);
setContent('');
}}
/>
</div>
);
};
export default App;
漫思
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/937655.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
递归函数的精确时间统计
import time
from functools import wrapsdef recursion_timer(func):"""装饰器:用于统计递归函数的总执行时间"""# 闭包变量:跟踪是否已经开始计时和开始时间is_timing = Falsestart…
[HZOI]CSP-S模拟32
CSP-S模拟32
今天打的要睡着了,根本没有大脑可以思考小 Z 专场!(是谁不重要,无限 %%% )T1 小 Z 爱计数
是 签到题 ,差点挂掉的签到题。
题意:有三种操作(+1、-1、归零),给定 n 个询问,问存不存在一种情况满足…
大素材毕业设计选题推荐-基于大数据的全球经济指标数据分析与可视化环境-Hadoop-Spark-数据可视化-BigData
大素材毕业设计选题推荐-基于大数据的全球经济指标数据分析与可视化环境-Hadoop-Spark-数据可视化-BigData2025-10-15 16:52
tlnshuju
阅读(0)
评论(0) 收藏
举报pre { white-space: pre !important; word-wrap: n…
D. MAD Interactive Problem
View PostD. MAD Interactive ProblemD. MAD Interactive Problem
Problem - D - Codeforces
我们可以进行如下操作:
① 从左到右将 \(i(1 \le i \le 2n)\) 放入 \(s\),然后查询 \(s\),如果答案是某个数字,那么 \(…
在 gitea 服务器端查询 lfs 文件占用情况
1、使用数据库管理工具打开 gitea 的数据库(如 sqlite 模式下:db/gogs.db)
2、执行以下 SQL 语句:
SELECTr.owner_name || / || r.name AS repo_name,m.oid,printf(%.2f MB, m.size / 1024.0 / 1024.0) AS size_mb…
HDR图像生成算法详解
HDR技术概述
高动态范围(HDR)图像生成是通过合成多张不同曝光度的图像,来捕捉超出传统显示设备范围的亮度信息。以下是主要的HDR生成算法及其MATLAB实现。
HDR成像基本原理
动态范围定义
动态范围 = 最大可记录亮度…
Introduction: Why Optimization?
在接触凸优化课程当中十分感到头疼,所以在网上搜寻各种资源,发现一位前辈撰写的自己学习凸优化的过程。我的凸优化学习之路 | 韩鼎の个人网站于是想也要慢慢啃下这块难啃的骨头。
引言:为什么要优化?
主要原因是在…
基于MATLAB的二自由度机械臂PID控制仿真
一、动力学建模(拉格朗日方程)
1. 机械臂参数定义
% 机械臂参数(单位:kgm)
m1 = 2.0; m2 = 1.5; % 连杆质量
l1 = 0.8; l2 = 0.6; % 连杆长度
I1 = 0.16; I2 = 0.063; % 转动惯量
g = 9.81; % 重力加速度2. 正运动…
Spring AOP原理
目录1. AOP核心概念2. 动态代理机制(1)JDK动态代理(2)CGLIB动态代理3. AOP执行流程4. 与AspectJ的关系总结
Spring AOP(面向切面编程)是Spring框架的核心特性之一,它基于动态代理和字节码增强技术实现,能够在不…
Azure VM (46) 分布式tcping监控
Azure VM (46) 分布式tcping监控《Windows Azure Platform 系列文章目录》具体的项目在我的github里:https://github.com/leizhang1984/pingmesh
Ventoy引导Kali live USB持久化
Ventoy 引导 Kali Live USB 持久化Ventoy 引导 Kali Live USB 持久化Ventoy 介绍
使用 Ventoy 替代 ISO 写盘
Ventoy 数据持久化插件简述
创建 Live 系统持久化文件
创建数据交换分区参考Ventoy 介绍
以下介绍来自 Ven…
知识库管理工具深度测评:ONES、Confluence 等10款工具全面对比
在数字化转型浪潮下,企业越来越重视知识资产的沉淀与共享。根据 Gartner 发布的《Knowledge Management Market Guide 2024》,全球超过85%的中大型组织已经采用知识库管理工具(Knowledge Base Management Tools)来…
从SGD到AdamW:深度学习优化器演进全解析与实践指南
从SGD到AdamW:深度学习优化器演进全解析与实践指南从SGD到AdamW:深度学习优化器演进全解析与实践指南
摘要
在深度学习中,优化器(Optimizer)是连接模型与数据的桥梁,它负责根据损失函数的梯度来更新模型的参数,…
【面试题】人工智能工程师高频面试题汇总:循环神经网络篇(题目+答案)
后台私信雯雯老师,备注:循环神经网络,领取更多相关面试题
随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提…
做了个手机上的“视频播放器”,获益匪浅
先上代码再解释踩过的坑。<html><head><meta charset="UTF-8">
<meta name="screen-orientation" content="landscape">
<meta name="viewport" …
AI一周资讯 251005-251015
OpenAI 2025开发者大会:多款新模型与工具重磅发布
OpenAI在2025年开发者大会上发布了一系列新模型和新工具。AgentKit是面向开发者和企业构建、部署和优化智能体的工具集,含Agent Builder、Connector Registry等组件…
2025 年中空百叶源头厂家最新推荐排行榜:聚焦国内优质供货商,助力客户精准选购可靠产品光能/光伏/电动/光动中空百叶厂家推荐
随着建筑门窗行业对遮阳、节能与采光需求的不断提升,中空百叶产品市场需求持续增长,但市场上厂家资质、产品质量差异显著。部分厂家技术落后、产能不足,难以保障大型项目供货;还有些厂家售后体系不完善,导致客户采…
2025年学校家具定制厂家最新权威推荐榜:全屋定制/衣柜/厨柜/酒柜/鞋柜/猫柜/酒店办公家具/电视柜/书包柜/图书架/宿舍上下床
2025年学校家具定制厂家最新权威推荐榜:全屋定制/衣柜/厨柜/酒柜/鞋柜/猫柜/酒店办公家具/电视柜/书包柜/图书架/宿舍上下床随着教育现代化进程的加速推进,学校家具定制行业正迎来新一轮发展机遇。2025年,教育机构对…
075_尚硅谷_位运算深度讲解
075_尚硅谷_位运算深度讲解1.2&3的运算过程和结果
2.2|3的运算过程和结果
3.2^3的运算过程和结果
4.-2^2的运算过程和结果
5.两个位移运算符