mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-02-06 02:25:05 +08:00
Compare commits
4 Commits
0c6c7c8fe7
...
e8bfda6020
| Author | SHA1 | Date | |
|---|---|---|---|
| e8bfda6020 | |||
| 34c54cd459 | |||
| 3d873d98fb | |||
| fbe25b5add |
@ -84,8 +84,8 @@ Try our demo at [https://demo.ragflow.io](https://demo.ragflow.io).
|
|||||||
|
|
||||||
## 🔥 Latest Updates
|
## 🔥 Latest Updates
|
||||||
|
|
||||||
|
- 2025-10-15 Supports orchestrable ingestion pipeline.
|
||||||
- 2025-08-08 Supports OpenAI's latest GPT-5 series models.
|
- 2025-08-08 Supports OpenAI's latest GPT-5 series models.
|
||||||
- 2025-08-04 Supports new models, including Kimi K2 and Grok 4.
|
|
||||||
- 2025-08-01 Supports agentic workflow and MCP.
|
- 2025-08-01 Supports agentic workflow and MCP.
|
||||||
- 2025-05-23 Adds a Python/JavaScript code executor component to Agent.
|
- 2025-05-23 Adds a Python/JavaScript code executor component to Agent.
|
||||||
- 2025-05-05 Supports cross-language query.
|
- 2025-05-05 Supports cross-language query.
|
||||||
|
|||||||
@ -80,8 +80,8 @@ Coba demo kami di [https://demo.ragflow.io](https://demo.ragflow.io).
|
|||||||
|
|
||||||
## 🔥 Pembaruan Terbaru
|
## 🔥 Pembaruan Terbaru
|
||||||
|
|
||||||
|
- 2025-10-15 Dukungan untuk jalur data yang terorkestrasi.
|
||||||
- 2025-08-08 Mendukung model seri GPT-5 terbaru dari OpenAI.
|
- 2025-08-08 Mendukung model seri GPT-5 terbaru dari OpenAI.
|
||||||
- 2025-08-04 Mendukung model baru, termasuk Kimi K2 dan Grok 4.
|
|
||||||
- 2025-08-01 Mendukung alur kerja agen dan MCP.
|
- 2025-08-01 Mendukung alur kerja agen dan MCP.
|
||||||
- 2025-05-23 Menambahkan komponen pelaksana kode Python/JS ke Agen.
|
- 2025-05-23 Menambahkan komponen pelaksana kode Python/JS ke Agen.
|
||||||
- 2025-05-05 Mendukung kueri lintas bahasa.
|
- 2025-05-05 Mendukung kueri lintas bahasa.
|
||||||
|
|||||||
@ -60,8 +60,8 @@
|
|||||||
|
|
||||||
## 🔥 最新情報
|
## 🔥 最新情報
|
||||||
|
|
||||||
|
- 2025-10-15 オーケストレーションされたデータパイプラインのサポート。
|
||||||
- 2025-08-08 OpenAI の最新 GPT-5 シリーズモデルをサポートします。
|
- 2025-08-08 OpenAI の最新 GPT-5 シリーズモデルをサポートします。
|
||||||
- 2025-08-04 新モデル、キミK2およびGrok 4をサポート。
|
|
||||||
- 2025-08-01 エージェントワークフローとMCPをサポート。
|
- 2025-08-01 エージェントワークフローとMCPをサポート。
|
||||||
- 2025-05-23 エージェントに Python/JS コードエグゼキュータコンポーネントを追加しました。
|
- 2025-05-23 エージェントに Python/JS コードエグゼキュータコンポーネントを追加しました。
|
||||||
- 2025-05-05 言語間クエリをサポートしました。
|
- 2025-05-05 言語間クエリをサポートしました。
|
||||||
|
|||||||
@ -60,8 +60,8 @@
|
|||||||
|
|
||||||
## 🔥 업데이트
|
## 🔥 업데이트
|
||||||
|
|
||||||
|
- 2025-10-15 조정된 데이터 파이프라인 지원.
|
||||||
- 2025-08-08 OpenAI의 최신 GPT-5 시리즈 모델을 지원합니다.
|
- 2025-08-08 OpenAI의 최신 GPT-5 시리즈 모델을 지원합니다.
|
||||||
- 2025-08-04 새로운 모델인 Kimi K2와 Grok 4를 포함하여 지원합니다.
|
|
||||||
- 2025-08-01 에이전트 워크플로우와 MCP를 지원합니다.
|
- 2025-08-01 에이전트 워크플로우와 MCP를 지원합니다.
|
||||||
- 2025-05-23 Agent에 Python/JS 코드 실행기 구성 요소를 추가합니다.
|
- 2025-05-23 Agent에 Python/JS 코드 실행기 구성 요소를 추가합니다.
|
||||||
- 2025-05-05 언어 간 쿼리를 지원합니다.
|
- 2025-05-05 언어 간 쿼리를 지원합니다.
|
||||||
|
|||||||
@ -80,8 +80,8 @@ Experimente nossa demo em [https://demo.ragflow.io](https://demo.ragflow.io).
|
|||||||
|
|
||||||
## 🔥 Últimas Atualizações
|
## 🔥 Últimas Atualizações
|
||||||
|
|
||||||
|
- 10-15-2025 Suporte para pipelines de dados orquestrados.
|
||||||
- 08-08-2025 Suporta a mais recente série GPT-5 da OpenAI.
|
- 08-08-2025 Suporta a mais recente série GPT-5 da OpenAI.
|
||||||
- 04-08-2025 Suporta novos modelos, incluindo Kimi K2 e Grok 4.
|
|
||||||
- 01-08-2025 Suporta fluxo de trabalho agente e MCP.
|
- 01-08-2025 Suporta fluxo de trabalho agente e MCP.
|
||||||
- 23-05-2025 Adicione o componente executor de código Python/JS ao Agente.
|
- 23-05-2025 Adicione o componente executor de código Python/JS ao Agente.
|
||||||
- 05-05-2025 Suporte a consultas entre idiomas.
|
- 05-05-2025 Suporte a consultas entre idiomas.
|
||||||
|
|||||||
@ -83,8 +83,8 @@
|
|||||||
|
|
||||||
## 🔥 近期更新
|
## 🔥 近期更新
|
||||||
|
|
||||||
|
- 2025-10-15 支援可編排的資料管道。
|
||||||
- 2025-08-08 支援 OpenAI 最新的 GPT-5 系列模型。
|
- 2025-08-08 支援 OpenAI 最新的 GPT-5 系列模型。
|
||||||
- 2025-08-04 支援 Kimi K2 和 Grok 4 等模型.
|
|
||||||
- 2025-08-01 支援 agentic workflow 和 MCP
|
- 2025-08-01 支援 agentic workflow 和 MCP
|
||||||
- 2025-05-23 為 Agent 新增 Python/JS 程式碼執行器元件。
|
- 2025-05-23 為 Agent 新增 Python/JS 程式碼執行器元件。
|
||||||
- 2025-05-05 支援跨語言查詢。
|
- 2025-05-05 支援跨語言查詢。
|
||||||
|
|||||||
@ -83,8 +83,8 @@
|
|||||||
|
|
||||||
## 🔥 近期更新
|
## 🔥 近期更新
|
||||||
|
|
||||||
- 2025-08-08 支持 OpenAI 最新的 GPT-5 系列模型.
|
- 2025-10-15 支持可编排的数据管道。
|
||||||
- 2025-08-04 新增对 Kimi K2 和 Grok 4 等模型的支持.
|
- 2025-08-08 支持 OpenAI 最新的 GPT-5 系列模型。
|
||||||
- 2025-08-01 支持 agentic workflow 和 MCP。
|
- 2025-08-01 支持 agentic workflow 和 MCP。
|
||||||
- 2025-05-23 Agent 新增 Python/JS 代码执行器组件。
|
- 2025-05-23 Agent 新增 Python/JS 代码执行器组件。
|
||||||
- 2025-05-05 支持跨语言查询。
|
- 2025-05-05 支持跨语言查询。
|
||||||
|
|||||||
@ -1,15 +1,14 @@
|
|||||||
{
|
{
|
||||||
"id": 26,
|
"id": 26,
|
||||||
"title": {
|
"title": {
|
||||||
"en": "Stock Research Report Workflow",
|
"en": "Stock Research Report Agent",
|
||||||
"zh": "股票研究报告工作流"
|
"zh": "股票研究报告智能体"
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"en": "This template helps financial analysts quickly organize information — it can automatically retrieve company data, consolidate financial metrics, and integrate research report insights.",
|
"en": "This template helps financial analysts quickly organize information — it can automatically retrieve company data, consolidate financial metrics, and integrate research report insights.",
|
||||||
"zh": "这个模板可以帮助金融分析师快速整理信息——它能够自动获取公司数据、整合财务指标,并汇总研报观点。"
|
"zh": "这个模板可以帮助金融分析师快速整理信息——它能够自动获取公司数据、整合财务指标,并汇总研报观点。"
|
||||||
},
|
},
|
||||||
"canvas_type": "Recommended",
|
"canvas_type": "Recommended",
|
||||||
"canvas_category": "dataflow_canvas",
|
|
||||||
"dsl": {
|
"dsl": {
|
||||||
"components": {
|
"components": {
|
||||||
"Agent:ManyToesBrush": {
|
"Agent:ManyToesBrush": {
|
||||||
@ -51,7 +51,7 @@ from rag.utils.redis_conn import REDIS_CONN
|
|||||||
@manager.route('/templates', methods=['GET']) # noqa: F821
|
@manager.route('/templates', methods=['GET']) # noqa: F821
|
||||||
@login_required
|
@login_required
|
||||||
def templates():
|
def templates():
|
||||||
return get_json_result(data=[c.to_dict() for c in CanvasTemplateService.query(canvas_category=CanvasCategory.Agent)])
|
return get_json_result(data=[c.to_dict() for c in CanvasTemplateService.get_all()])
|
||||||
|
|
||||||
|
|
||||||
@manager.route('/rm', methods=['POST']) # noqa: F821
|
@manager.route('/rm', methods=['POST']) # noqa: F821
|
||||||
|
|||||||
@ -200,12 +200,14 @@ export const useSendAgentMessage = ({
|
|||||||
beginParams,
|
beginParams,
|
||||||
isShared,
|
isShared,
|
||||||
refetch,
|
refetch,
|
||||||
|
isTaskMode: isTask,
|
||||||
}: {
|
}: {
|
||||||
url?: string;
|
url?: string;
|
||||||
addEventList?: (data: IEventList, messageId: string) => void;
|
addEventList?: (data: IEventList, messageId: string) => void;
|
||||||
beginParams?: any[];
|
beginParams?: any[];
|
||||||
isShared?: boolean;
|
isShared?: boolean;
|
||||||
refetch?: () => void;
|
refetch?: () => void;
|
||||||
|
isTaskMode?: boolean;
|
||||||
}) => {
|
}) => {
|
||||||
const { id: agentId } = useParams();
|
const { id: agentId } = useParams();
|
||||||
const { handleInputChange, value, setValue } = useHandleMessageInputChange();
|
const { handleInputChange, value, setValue } = useHandleMessageInputChange();
|
||||||
@ -217,7 +219,7 @@ export const useSendAgentMessage = ({
|
|||||||
return answerList[0]?.message_id;
|
return answerList[0]?.message_id;
|
||||||
}, [answerList]);
|
}, [answerList]);
|
||||||
|
|
||||||
const isTaskMode = useIsTaskMode();
|
const isTaskMode = useIsTaskMode(isTask);
|
||||||
|
|
||||||
const { findReferenceByMessageId } = useFindMessageReference(answerList);
|
const { findReferenceByMessageId } = useFindMessageReference(answerList);
|
||||||
const prologue = useGetBeginNodePrologue();
|
const prologue = useGetBeginNodePrologue();
|
||||||
@ -230,6 +232,7 @@ export const useSendAgentMessage = ({
|
|||||||
addNewestOneQuestion,
|
addNewestOneQuestion,
|
||||||
addNewestOneAnswer,
|
addNewestOneAnswer,
|
||||||
removeAllMessages,
|
removeAllMessages,
|
||||||
|
removeAllMessagesExceptFirst,
|
||||||
scrollToBottom,
|
scrollToBottom,
|
||||||
} = useSelectDerivedMessages();
|
} = useSelectDerivedMessages();
|
||||||
const { addEventList: addEventListFun } = useContext(AgentChatLogContext);
|
const { addEventList: addEventListFun } = useContext(AgentChatLogContext);
|
||||||
@ -321,8 +324,18 @@ export const useSendAgentMessage = ({
|
|||||||
stopOutputMessage();
|
stopOutputMessage();
|
||||||
resetAnswerList();
|
resetAnswerList();
|
||||||
setSessionId(null);
|
setSessionId(null);
|
||||||
removeAllMessages();
|
if (isTaskMode) {
|
||||||
}, [resetAnswerList, removeAllMessages, stopOutputMessage]);
|
removeAllMessages();
|
||||||
|
} else {
|
||||||
|
removeAllMessagesExceptFirst();
|
||||||
|
}
|
||||||
|
}, [
|
||||||
|
stopOutputMessage,
|
||||||
|
resetAnswerList,
|
||||||
|
isTaskMode,
|
||||||
|
removeAllMessages,
|
||||||
|
removeAllMessagesExceptFirst,
|
||||||
|
]);
|
||||||
|
|
||||||
const handlePressEnter = useCallback(() => {
|
const handlePressEnter = useCallback(() => {
|
||||||
if (trim(value) === '') return;
|
if (trim(value) === '') return;
|
||||||
|
|||||||
@ -27,13 +27,16 @@ export function useSelectBeginNodeDataInputs() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useIsTaskMode() {
|
export function useIsTaskMode(isTask?: boolean) {
|
||||||
const getNode = useGraphStore((state) => state.getNode);
|
const getNode = useGraphStore((state) => state.getNode);
|
||||||
|
|
||||||
return useMemo(() => {
|
return useMemo(() => {
|
||||||
|
if (typeof isTask === 'boolean') {
|
||||||
|
return isTask;
|
||||||
|
}
|
||||||
const node = getNode(BeginId);
|
const node = getNode(BeginId);
|
||||||
return node?.data?.form?.mode === AgentDialogueMode.Task;
|
return node?.data?.form?.mode === AgentDialogueMode.Task;
|
||||||
}, [getNode]);
|
}, [getNode, isTask]);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useGetBeginNodeDataQuery = () => {
|
export const useGetBeginNodeDataQuery = () => {
|
||||||
|
|||||||
@ -59,6 +59,7 @@ export const useSendNextSharedMessage = (
|
|||||||
addEventList,
|
addEventList,
|
||||||
beginParams: params,
|
beginParams: params,
|
||||||
isShared: true,
|
isShared: true,
|
||||||
|
isTaskMode,
|
||||||
});
|
});
|
||||||
|
|
||||||
const ok = useCallback(
|
const ok = useCallback(
|
||||||
|
|||||||
Reference in New Issue
Block a user