findora
findora is an LLM-assisted search utility.
Give it a plain-text query and it returns a curated list of links with titles and descriptions, after:
- validating the query with a small language-model prompt
- optionally enhancing that query for better recall/precision
- running iterative searches while:
- deduplicating URLs
- honouring language & geo preferences
- respecting result and iteration caps
It is ideal for chat-bots, data-gathering pipelines, academic tooling, or anywhere you need a “few good links” rather than an HTML page of unstructured results.
Installation
pip install findora
Python ≥ 3.8 is required.
Quick start
from findora import findora
results = findora(
search_query="Eugene Evstafev",
n=10,
enhance=False,
verbose=False,
language="en-US",
location="UK",
)
print(results)
Example output (truncated/pretty-printed):
[
{
"title": "Eugene Evstafev – Google Scholar",
"url": "https://scholar.google.com/citations?user=cYLfW7QAAAAJ&hl=en",
"desc": "Eugene Evstafev, University of Cambridge. Topics include computer science …",
},
{
"title": "How A24 Changed Contemporary Cinema – Medium",
"url": "https://medium.com/@chigwel/how-a24-changed-contemporary-cinema-5dc69c0b00c2",
"desc": "Article discussing the impact of A24 films and the 2023 Oscars success …",
},
…
]
API
findora(
search_query: str,
llm: Optional[Any] = None, # custom ChatLLM7-compatible object
n: int = 10, # max results (1 – 10)
enhance: bool = True, # turn query rewriting on/off
verbose: bool = False, # print prompt/response trace
max_retries: int = 15, # LLM retry budget
language: str = "en-US", # BCP-47 tag passed to the search prompt
location: str = "World", # free-text geographical hint
max_iterations: int = 55, # safety stop for the search loop
) -> list[dict]
Raises ValueError for:
- empty or > 1024-char queries
n > 10- invalid query as judged by the model.
Features
- 🔍 LLM-powered query understanding – prevents garbage queries early.
- ✨ Optional query enhancement – adds synonyms, context and localised terms.
- 🗺 Language & region control – pass
language/locationand let the model obey. - 🚫 Deduplication & “exclude” list – zero duplicated links across iterations.
- 🧪 Deterministic unit-tested core – 100 % tests pass with mocked LLMs.
Contributing
Bug reports, pull requests and feature ideas are welcome!
Head over to the issue tracker to get started.
- Fork the repository
- Create a feature branch
- Run the test suite with pytest
- Open a PR
Please run black and isort before submitting.
License
findora is distributed under the MIT License.
Links
- 🐙 GitHub → https://github.com/chigwell/findora
- 📦 PyPI → https://pypi.org/project/findora/
- 👤 Author → Eugene Evstafev
Metadata
Release files for findora 2025.7.131053
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| findora-2025.7.131053.tar.gz | 12.1 kB | Without provenance | Details for findora-2025.7.131053.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| findora-2025.7.131053-py3-none-any.whl | Python 3 | none | any | Details for findora-2025.7.131053-py3-none-any.whl |
Total release size: 25.3 kB
Release files / findora-2025.7.131053.tar.gz
| Download URL | findora-2025.7.131053.tar.gz |
|---|---|
| Size | 12.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb79a9f5dea8b3b168d9741f617b88834a591bfbe06d56aa0f6ea962c15d1703
|
|
BLAKE2b-256 checksum How to use checksums |
679dfb11ee263a6564004c9a4508020560b8358bebfb6969fd540e2c26ac50d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.11
|
Release files / findora-2025.7.131053-py3-none-any.whl
| Download URL | findora-2025.7.131053-py3-none-any.whl |
|---|---|
| Size | 13.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7a7e73cf1582c81441ab60e6355b6f1dc11970779a14dc785d97e53e5e9fa4d4
|
|
BLAKE2b-256 checksum How to use checksums |
8dc59ae6f35159e5036dd2cab5648679869efde37e5d4a17dd4ebb3bdab5bd6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.11
|
Security for findora 2025.7.131053
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.