Skip to content

[Integration] infiniflow/ragflow — You.com web search provider #201

Description

@brainsparker

Target Repository URL

https://github.com/infiniflow/ragflow

You.com API(s)

search

Estimated Complexity

large

Integration Description

RAGFlow (88.8K★, InfiniFlow) wires web search into both chat retrieval and the agent tool set. The web_search_provider field selects the provider per chat, with BYOK credentials entered in the chat settings UI.

This integration adds You.com as a selectable provider across all four layers: the Go chat/deep-research runtime, the Python retrieval runtime, the chat settings UI, and the HTTP API docs.

Target Repo Contributing Guidelines

No CONTRIBUTING.md in the repo. Issue templates exist; PRs are reviewed by CodeRabbit.

Planned Approach

Mirror the two providers already wired behind the abstraction:

  • internal/service/web_search_provider.gowebSearchProviderYouCom, endpoint selection, and retrieveYouComWebSearch returning RAGFlow's chunk/doc_agg shape.
  • rag/utils/youcom_conn.pyYouCom connector; registered in rag/utils/web_search_conn.py.
  • Web: constants/chat.ts, interfaces/database/chat.ts, components/web-search-form-field.tsx, pages/next-chats/chat/{web-search-api-key.ts,use-show-internet.ts,app-settings/use-chat-setting-schema.tsx}, locales/{en,zh}.ts.
  • docs/references/http_api_reference.md.
  • Tests in Go, Python, and the web suite.

Keyless: no youcom_api_keyapi.you.com/v1/agents/search; key set → api.you.com/v1/search with X-API-Key.

Status Checklist

  • Claimed this integration (self-assign)
  • Filed issue or opened discussion in target repo
  • Opened PR in target repo
  • You.com API calls send the standard integration User-Agent (youdotcom-integration/<owner>-<repo>)
  • You.com links in contributed docs carry the standard UTM parameters
  • PR merged or rejected

Links

Target repo issue: none — issue-first dropped on evidence (see notes); confirmed with Brian
Target repo PR: infiniflow/ragflow#18478

Additional Notes

Scope correction — Tavily is no longer the only wired provider. The brief described a single concrete implementation behind an unused abstraction, and recommended filing an issue first to confirm they wanted a second provider. Neither holds:

  • Querit already landed as a second provider — PR #17813 "feat(chat): add Querit web search provider", merged 2026-08-04, authored by a vendor (ethan7zhanghx), with no preceding issue. It also did the abstraction refactor. Querit followed up with an agent search tool (#17548) and a Contents tool (#18156), both merged.
  • A third-provider PR is already open — #18475 "feat(chat): add Serply web search provider", opened 2026-08-19, +664 across 18 files. That PR is the canonical template for a third provider, and it is a live competitor for the same slot.

Issue-first was therefore dropped on the strength of that evidence. Confirmed with Brian before opening the PR.

Our differentiator is keyless. RAGFlow's model is BYOK-per-chat: has_web_search_provider (Python) and resolveWebSearchProvider (Go) both refuse a provider with an empty key, and the UI hides the Internet toggle until a key is entered. You.com is registered as the only keyless-capable provider, so selecting it enables web search with nothing pasted. That required a small, per-provider carve-out in each of those three gates rather than a change to shared behaviour — Tavily, Querit, and Serply are unaffected.

No official You.com logo asset exists at a usable size (Querit ships a 499×472 PNG; you.com serves only a 16×16 .ico). The provider option renders without a logo, with the logo field made optional and a comment marking the follow-up.


User-Agent shipped: RAGFlow youdotcom-integration/infiniflow-ragflow (case 1), sent from both the Go and Python runtimes, on both auth paths, You.com hosts only. Pinned by Go and Python tests.

UTM: 2026-08-oss-integrations / utm_source=infiniflow-ragflow / utm_content=app on the "How to get it?" link in the chat-settings provider form.

Metadata

Metadata

Assignees

Labels

api:searchUses You.com Search APIstatus:claimedSomeone is actively working on this integrationstatus:pr-openedPR filed in the target repo

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions