Skip to content

[Integration] BetaStreetOmnis/EasyRAG - You.com web search /web/search endpoint #159

Description

@Emos21

Target Repository URL

https://github.com/BetaStreetOmnis/EasyRAG

You.com API(s)

search

Estimated Complexity

small

Integration Description

EasyRAG is a lightweight local RAG knowledge base with a web UI (Python, FastAPI + FAISS, ~145 stars, Chinese). Retrieval is served by POST /kb/search over the local vector store. This integration adds a POST /web/search endpoint using You.com Search as an external retriever, returning the same {status, data} + {index, score, text, metadata} envelope as /kb/search. Without YDC_API_KEY the endpoint returns a clear "not enabled" message; all errors degrade to empty. Purely additive, key-gated.

Target Repo Contributing Guidelines

https://github.com/BetaStreetOmnis/EasyRAG/blob/main/CONTRIBUTING.md

Planned Approach

  • core/web_search/youcom_retriever.py: YouComWebRetriever (requests, GET https://ydc-index.io/v1/search, X-API-Key from YDC_API_KEY, youdotcom-integration/betastreetomnis-easyrag UA), normalize web/news to {index,score,text,metadata}, top_k clamp + total truncation, graceful [] on any error
  • app.py: WebSearchQuery model + POST /web/search returning the /kb/search envelope; no-key returns a "not enabled" message
  • 11 stdlib-unittest tests (repo CI is flake8 lint-only; new files flake8-clean) + live end-to-end check
  • Purely additive; key-gated; never leaks the key

Status Checklist

  • Claimed this integration (self-assign)
  • Filed issue or opened discussion in target repo
  • Opened PR in target repo
  • PR merged or rejected

Links

Target repo issue: BetaStreetOmnis/EasyRAG#23
Target repo PR: BetaStreetOmnis/EasyRAG#24

Additional Notes

Fork: https://github.com/Cooperation-org/EasyRAG, branch feature/youcom-search. Chinese repo — issue, PR and commits in Chinese with an English summary. Independent Fable review passed; fixes applied (python-dotenv optional import so a clean install never crashes, whitespace-key strip, non-dict payload hardening).

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