Skip to main content

Crawl OpenReview submissions and run embedding-based semantic search.

Project description

embed-papers

embed-papers crawls OpenReview submissions and runs semantic search with OpenAI embeddings.

This is a helper package for my agentic research workflow. Originally forked from gyj155/SearchPaperByEmbedding.

For Agents

CLI contract

  • stdout always prints one JSON object
  • stderr is reserved for logs/progress
  • non-zero exit codes still emit JSON on stdout

Success envelope:

{
  "ok": true,
  "schema_version": "1",
  "command": "search",
  "data": {}
}

Error envelope:

{
  "ok": false,
  "schema_version": "1",
  "command": "search",
  "error": {
    "type": "InvalidPapersFileError",
    "message": "..."
  }
}

CLI usage

Crawl

embed-papers crawl --venue-id "ICLR.cc/2026/Conference" --skip-if-exists

By default, crawl fails when zero papers are found (to catch wrong venue ids early).

Use --skip-if-exists to reuse an existing output file and skip calling OpenReview.

If --output-file is omitted, crawl defaults to:

  • ~/.cache/embed-papers/papers/<venue-id-slug>.json

Warm cache

export OPENAI_API_KEY="<your-key>"
embed-papers warm-cache \
  --papers-file iclr2026_papers.json \
  --venue-id "ICLR.cc/2026/Conference"

--papers-file is optional if --venue-id is provided. In that case, it defaults to ~/.cache/embed-papers/papers/<venue-id-slug>.json.

If --cache-dir is omitted, embeddings default to:

  • ~/.cache/embed-papers/embeddings

Search

embed-papers search \
  --papers-file iclr2026_papers.json \
  --venue-id "ICLR.cc/2026/Conference" \
  --query "foundation models for planning" \
  --top-k 20

--papers-file is optional if --venue-id is provided. In that case, it defaults to ~/.cache/embed-papers/papers/<venue-id-slug>.json.

search uses the same default embeddings cache dir (~/.cache/embed-papers/embeddings) unless --cache-dir is provided.

For Human

Make sure you have set an OPENAI_API_KEY in your shell. In the command line, run:

embed-papers host

This launches a local Streamlit UI in your browser for interactive use.

Viewer flow:

  • enter conference abbreviation + year (auto-builds venue id)
  • choose direct query or examples upload
  • set top-k and run search
  • auto-crawl papers if missing
  • auto-build embeddings cache if missing

Cache directories used by viewer:

  • ~/.cache/embed-papers/papers
  • ~/.cache/embed-papers/embeddings

Python API

1) Crawl conference papers

from embed_papers import crawl_papers

_ = crawl_papers(
    venue_id="ICLR.cc/2026/Conference",
    output_file="iclr2026_papers.json",
)

2) Warm cache / search

from embed_papers import PaperSearcher

searcher = PaperSearcher(
    papers_file="iclr2026_papers.json",
    venue_id="ICLR.cc/2026/Conference",
    model_name="text-embedding-3-large",
)

searcher.ensure_embeddings()
results = searcher.search(query="robotics planning language model", top_k=100)
searcher.display(results, n=10, show_abstract=True, abstract_max_chars=500)
searcher.save(results, "results.json")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

embed_papers-0.4.3.tar.gz (115.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

embed_papers-0.4.3-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file embed_papers-0.4.3.tar.gz.

File metadata

  • Download URL: embed_papers-0.4.3.tar.gz
  • Upload date:
  • Size: 115.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for embed_papers-0.4.3.tar.gz
Algorithm Hash digest
SHA256 a6aca9ea00d342e17a6a8aa064cb66f31e0f2e2582b6e8b42b93c4c26af72a55
MD5 8e3f78f37d04e8a733a295a59f99195d
BLAKE2b-256 b4a14851f0ed7b160b19fd3857d6ade22e1a94945a9e646bbe848265c5e63ba0

See more details on using hashes here.

Provenance

The following attestation bundles were made for embed_papers-0.4.3.tar.gz:

Publisher: release-wheel.yml on CodeBoyPhilo/Embed-Papers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file embed_papers-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: embed_papers-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for embed_papers-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8c2c3ad63371c3574a00c028337fdc94798a4799b5b8d193a07e5de3c548cb20
MD5 8808b84583b2a6762aa48d9f4f73c231
BLAKE2b-256 20ce2115c5b26041873b59a45e2ade1de18bddc93356b63cc20b75712e442e27

See more details on using hashes here.

Provenance

The following attestation bundles were made for embed_papers-0.4.3-py3-none-any.whl:

Publisher: release-wheel.yml on CodeBoyPhilo/Embed-Papers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page