ragflow/agent/component
Song Fuchang ad4e59edb2
Don't split and strip input in retrieval component. (#6662)
### 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):
2025-03-31 11:26:49 +08:00
..
__init__.py Update comments (#4569) 2025-01-21 20:52:28 +08:00
akshare.py Import akshare lazzily. (#4708) 2025-02-05 12:04:11 +08:00
answer.py Code refactor. (#4291) 2024-12-30 18:38:51 +08:00
arxiv.py Use consistent log file names, introduced initLogger (#3403) 2024-11-14 17:13:48 +08:00
baidu.py Add iteration for agent. (#4258) 2024-12-27 11:38:33 +08:00
baidufanyi.py Fix BaiduFanyi TestRun parameter validation and debug method missing … (#4275) 2024-12-30 10:34:57 +08:00
base.py Fix: Resolved a bug where sibling components in Canvas were not restricted to fetching data from the upstream when parallel components were present. (#6315) 2025-03-20 15:06:18 +08:00
begin.py Support debug components. (#3994) 2024-12-11 19:23:59 +08:00
bing.py Use consistent log file names, introduced initLogger (#3403) 2024-11-14 17:13:48 +08:00
categorize.py Fix: The rule of Categorize operator is adjusted. (#6599) 2025-03-27 17:02:21 +08:00
concentrator.py Format: dos2unix (#4467) 2025-01-13 18:19:01 +08:00
crawler.py Fix potential SSRF attack vulnerability (#4334) 2025-01-02 18:45:45 +08:00
deepl.py Fix errors detected by Ruff (#3918) 2024-12-08 14:21:12 +08:00
duckduckgo.py Use consistent log file names, introduced initLogger (#3403) 2024-11-14 17:13:48 +08:00
email.py Email sending tool (#3837) 2024-12-04 11:21:17 +08:00
exesql.py Feat: add data type invoke (#5126) 2025-02-27 16:15:33 +08:00
generate.py Agent Update: Fix Role Issue and Enhance KB Search (#5842) 2025-03-10 18:29:58 +08:00
github.py Use consistent log file names, introduced initLogger (#3403) 2024-11-14 17:13:48 +08:00
google.py Use consistent log file names, introduced initLogger (#3403) 2024-11-14 17:13:48 +08:00
googlescholar.py Use consistent log file names, introduced initLogger (#3403) 2024-11-14 17:13:48 +08:00
invoke.py Feat: add data type invoke (#5126) 2025-02-27 16:15:33 +08:00
iteration.py Add iteration for agent. (#4258) 2024-12-27 11:38:33 +08:00
iterationitem.py Feat: apply LLM to optimize citations. (#5935) 2025-03-11 19:56:21 +08:00
jin10.py Format: dos2unix (#4467) 2025-01-13 18:19:01 +08:00
keyword.py Remove thinking block from keyword node's result (#6474) 2025-03-25 10:22:41 +08:00
message.py Add graphrag (#1793) 2024-08-02 18:51:14 +08:00
pubmed.py Use consistent log file names, introduced initLogger (#3403) 2024-11-14 17:13:48 +08:00
qweather.py Fix component qweather (#2240) 2024-09-04 17:53:11 +08:00
relevant.py Component debugging funcionality. (#4012) 2024-12-13 08:50:32 +08:00
retrieval.py Don't split and strip input in retrieval component. (#6662) 2025-03-31 11:26:49 +08:00
rewrite.py Refa: make Rewrite component effective to relative data expression. (#5752) 2025-03-07 13:48:13 +08:00
switch.py Fix: swich follow interact issue. (#6279) 2025-03-19 17:30:12 +08:00
template.py Fix: Preserve quotes while handling variable substitution withTemplate component. (#6410) 2025-03-21 19:44:03 +08:00
tushare.py Format: dos2unix (#4467) 2025-01-13 18:19:01 +08:00
wencai.py Format: dos2unix (#4467) 2025-01-13 18:19:01 +08:00
wikipedia.py Use consistent log file names, introduced initLogger (#3403) 2024-11-14 17:13:48 +08:00
yahoofinance.py Format: dos2unix (#4467) 2025-01-13 18:19:01 +08:00