Catalog PyPI
Back to packageRELEASE DETAILS

1.2.0

PyPI

achem

Deep Web Research Tool - Auto-classifies topics, prioritizes relevant sources, generates 300+ word AI conclusions

aiclideep-webollamaordinal-distancepositional-searchresearchsummarizationtoolweb-scraping
Published14 Apr 2026
Direct dependencies19
Transitive dependenciesNot calculated

README

Version 1.2.0 documentation

ACHEM - Deep Web Research Tool

ACHEM Banner

ACHEM (Arabic: آشم) is an intelligent research tool that automatically classifies your query, finds relevant specialized sources, and generates comprehensive 300+ word AI conclusions.

Features

Smart Topic Classification

Automatically detects your query type and prioritizes relevant sources:

TopicPriority Sites
Anime & MangaMyAnimeList, Crunchyroll, Anime News Network
Football/SoccerThe Analyst, ESPN, Sky Sports, Goal.com
MMA/FightingTapology, Sherdog, MMA Junkie
GamingIGN, GameSpot, Metacritic, Steam
Movies/TVIMDb, Rotten Tomatoes, Metacritic
Health/MedicineMayo Clinic, WebMD, WHO
ScienceScientific American, Nature, NASA
TechnologyStack Overflow, GitHub, TechCrunch
HistoryBritannica, History.com

Comprehensive Research

  • 100+ Sources: Searches DuckDuckGo with topic-prioritized results
  • Full Content Extraction: Scrapes complete articles from specialized sites
  • Smart Filtering: Removes ads/boilerplate, keeps relevant content
  • 300+ Word Conclusions: Detailed AI-generated analysis

How Results Are Sorted

Results are sorted by relevance:

  1. Most relevant sources for your topic first
  2. Specialized sites for your query type
  3. General sources last

Installation

git clone https://github.com/sarok-exe/achem.git
cd achem
uv venv .venv && source .venv/bin/activate
uv pip install -e .

API Configuration

Create ~/.ACHEM/api.env:

OPENROUTER_API_KEY=your_openrouter_key_here
OPENROUTER_MODEL=google/gemma-4-31b-it:free

Get API key: https://openrouter.ai/settings

Usage

achem "What are the health risks of smoking?" --ddg-limit 50
achem "Who will win Bayern vs Real Madrid?" --ddg-limit 100
achem "Latest One Piece chapter summary" --ddg-limit 50

Options

--ddg-limit N     Number of sources (default: 100)
--mode ai         AI conclusions (default)
--mode local      Local TF-IDF (no API)
--lang en/fr/ar   Response language

How It Works

┌──────────────────────────────────────────────────────┐
│ 1. CLASSIFY                                          │
│    Detects topic: anime, football, health, etc.       │
│    Identifies priority sites for your topic           │
├──────────────────────────────────────────────────────┤
│ 2. SEARCH (100+ sources)                             │
│    Prioritizes specialized sites                      │
│    Sorts by topic relevance                          │
├──────────────────────────────────────────────────────┤
│ 3. SCRAPE                                            │
│    Extracts full article text                        │
│    Removes ads and boilerplate                       │
├──────────────────────────────────────────────────────┤
│ 4. ANALYZE & CONCLUDE                                │
│    Generates 300+ word comprehensive analysis        │
│    Synthesizes all sources into detailed paragraphs  │
└──────────────────────────────────────────────────────┘

Output

Reports saved to ~/Documents/ACHEM/:

  • AI Conclusion: 300+ word detailed analysis
  • All Articles: Full extracted content
  • Topic Classification: Shows detected category

License

MIT License

Acknowledgments

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 22

Native requirements
19 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
wikipedia-api
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
wikipedia-api>=0.5.4runtime
rich
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
rich>=13.0.0runtime
psutil
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
psutil>=5.9.0runtime
prompt_toolkit
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
prompt_toolkit>=3.0.0runtime
pyfiglet
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pyfiglet>=0.8.0runtime
openai
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
openai>=1.0.0runtime
groq
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
groq>=1.0.0runtime
google-genai
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
google-genai>=1.0.0runtime
ddgs
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
ddgs>=3.0.0runtime
beautifulsoup4
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
beautifulsoup4>=4.12.0runtime
requests
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
requests>=2.31.0runtime
trafilatura
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
trafilatura>=1.6.0runtime
textual
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
textual>=0.50.0runtime
duckduckgo-search
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
duckduckgo-search>=4.0.0runtime
arabic-reshaper
Environment
{
  "extras": "",
  "marker": "extra == \"arabic\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
arabic-reshaper>=3.0.0; extra == "arabic"runtime
python-bidi
Environment
{
  "extras": "",
  "marker": "extra == \"arabic\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
python-bidi>=0.14.0; extra == "arabic"runtime
ollama
Environment
{
  "extras": "",
  "marker": "extra == \"ollama\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
ollama>=0.1.0; extra == "ollama"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest>=7.0.0; extra == "dev"runtime
ruff
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
ruff>=0.1.0; extra == "dev"runtime
arabic-reshaper
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
arabic-reshaper>=3.0.0; extra == "all"runtime
python-bidi
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
python-bidi>=0.14.0; extra == "all"runtime
ollama
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
ollama>=0.1.0; extra == "all"runtime

Distribution files

2 collected
achem-1.2.0-py3-none-any.whl

bdist_wheel · 61.2 KB · Python py3

Source file
achem-1.2.0.tar.gz

sdist · 51 KB · Python source

Source file

Repository

PENDING
sarok-exe/achem

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:12 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:81e65239a7940402d26aff2ed61ed18bfc2ea7f7f4c2c5ba80f68177ea34478c

Other collected versions

View all collected versions →