Interactive evidence-search and relevance-feedback experiment scaffold.
Project description
evidence-fetcher
evidence-fetcher is an interactive evidence-search and relevance-feedback experiment.
The current vertical slice fetches web evidence from Brave Search, normalizes the provider response, removes duplicate URLs, and exposes the results through a Python API and a small command-line interface.
Installation
Install the core package:
pip install evidence-fetcher
Configuration
Create a Brave Search API key and expose it as BRAVE_SEARCH_API_KEY:
export BRAVE_SEARCH_API_KEY="..."
Python API
from evidence_fetcher import fetch_evidence
results = fetch_evidence("retrieval augmented generation evaluation")
for evidence in results:
print(evidence.title)
print(evidence.url)
print(evidence.snippet)
fetch_evidence() returns typed Evidence objects with normalized title,
url, snippet, source, and rank fields.
CLI
Readable text output:
evidence-fetcher "retrieval augmented generation evaluation"
JSON output:
evidence-fetcher "retrieval augmented generation evaluation" --format json
Use --limit to control the maximum number of results.
Architecture
The public API is intentionally small: fetch_evidence() accepts a query and
returns normalized, deduplicated Evidence results. Provider-specific HTTP
requests, credential handling, and response parsing live behind an internal
Brave Search provider. The provider depends on a small HTTP client protocol, so
tests and future integrations can inject a mock client instead of using the
network.
Package-specific exceptions distinguish configuration errors, request failures, and malformed provider responses.
Only Brave Search is implemented in this slice. No Streamlit UI or additional search providers are included yet.
Development
This project uses uv for environment and dependency management.
uv sync
uv run pytest
uv run ruff check .
uv run mypy src
uv build
uv run sphinx-build -b html docs/source docs/built
Common shortcuts are available through make:
make check
make docs
make clean
Documentation
Documentation is built with Sphinx and Furo from docs/source/ into docs/built/. Read the Docs should build the documentation through its normal repository integration.
Releases
Releases are managed with Python Semantic Release and Conventional Commits. The GitHub Actions release workflow is intended to create the release commit, tag, GitHub release, wheel, sdist, and PyPI publication through trusted publishing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file evidence_fetcher-0.1.0.tar.gz.
File metadata
- Download URL: evidence_fetcher-0.1.0.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01e6b318e169764bb04bbac95e3c12f612573c0147230eef7e4b4d9d8a6baa08
|
|
| MD5 |
86dbc4f6691addce3046fc60f91acb2f
|
|
| BLAKE2b-256 |
9f78ff5b76774af4ead0b8fc84106ce24ef0f8ebdb364aabe676023df5cadda2
|
Provenance
The following attestation bundles were made for evidence_fetcher-0.1.0.tar.gz:
Publisher:
release.yml on yeiichi/evidence-fetcher
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evidence_fetcher-0.1.0.tar.gz -
Subject digest:
01e6b318e169764bb04bbac95e3c12f612573c0147230eef7e4b4d9d8a6baa08 - Sigstore transparency entry: 2190029048
- Sigstore integration time:
-
Permalink:
yeiichi/evidence-fetcher@ccd037081e4e774db2629e86e1ff26f6c44b0c2b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yeiichi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ccd037081e4e774db2629e86e1ff26f6c44b0c2b -
Trigger Event:
push
-
Statement type:
File details
Details for the file evidence_fetcher-0.1.0-py3-none-any.whl.
File metadata
- Download URL: evidence_fetcher-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
494634e16d0495ca28d1234371c43f94c55080732583f983dfd14d930f74592a
|
|
| MD5 |
7bb94ca8f67074d9df49cbc3a30295c8
|
|
| BLAKE2b-256 |
bfbf97a9fc9187ce1f2f3a88ddc857eae76d09d11a1877536d34eaef41992290
|
Provenance
The following attestation bundles were made for evidence_fetcher-0.1.0-py3-none-any.whl:
Publisher:
release.yml on yeiichi/evidence-fetcher
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evidence_fetcher-0.1.0-py3-none-any.whl -
Subject digest:
494634e16d0495ca28d1234371c43f94c55080732583f983dfd14d930f74592a - Sigstore transparency entry: 2190029077
- Sigstore integration time:
-
Permalink:
yeiichi/evidence-fetcher@ccd037081e4e774db2629e86e1ff26f6c44b0c2b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yeiichi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ccd037081e4e774db2629e86e1ff26f6c44b0c2b -
Trigger Event:
push
-
Statement type: