mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-07-30 08:12:02 +08:00

### What problem does this PR solve? Actually fix #6241 Hello, I ran into the same problem as #6241. When I'm testing my agent flow in the web ui using `Run` button with a file input, the retrieval component always gave an empty output. In the code I found that: `web/src/pages/flow/debug-content/index.tsx`: ```tsx const onOk = useCallback(async () => { const values = await form.validateFields(); const nextValues = Object.entries(values).map(([key, value]) => { const item = parameters[Number(key)]; let nextValue = value; if (Array.isArray(value)) { nextValue = ``; value.forEach((x) => { nextValue += x?.originFileObj instanceof File ? `${x.name}\n${x.response?.data}\n----\n` // Here, the file content always ends in '\n' : `${x.url}\n${x.result}\n----\n`; }); } return { ...item, value: nextValue }; }); ok(nextValues); }, [form, ok, parameters]); ``` while in the `agent/component/retrieval.py`: ```python def _run(self, history, **kwargs): query = self.get_input() query = str(query["content"][0]) if "content" in query else "" lines = query.split('\n') # inputs are split to ['xxx','yyy','----',''] query = lines[-1] if lines else "" # Here we always get '', thus no result kbs = KnowledgebaseService.get_by_ids(self._param.kb_ids) if not kbs: return Retrieval.be_output("") ``` so the code will never got correct result. I'm not sure why the input needs such a split here, so I just removed the splitting, and it works well on my side. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) - [ ] New Feature (non-breaking change which adds functionality) - [ ] Documentation Update - [ ] Refactoring - [ ] Performance Improvement - [ ] Other (please describe):
English | 简体中文
Graph
Introduction
Graph is a mathematical concept which is composed of nodes and edges. It is used to compose a complex work flow or agent. And this graph is beyond the DAG that we can use circles to describe our agent or work flow. Under this folder, we propose a test tool ./test/client.py which can test the DSLs such as json files in folder ./test/dsl_examples. Please use this client at the same folder you start RAGFlow. If it's run by Docker, please go into the container before running the client. Otherwise, correct configurations in service_conf.yaml is essential.
PYTHONPATH=path/to/ragflow python graph/test/client.py -h
usage: client.py [-h] -s DSL -t TENANT_ID -m
options:
-h, --help show this help message and exit
-s DSL, --dsl DSL input dsl
-t TENANT_ID, --tenant_id TENANT_ID
Tenant ID
-m, --stream Stream output