anaksor-ocr
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

The Stanford Open Virtual Assistant Lab’s open-source system that researches a topic on the Internet and writes a full-length article with citations. Co-STORM lets you join the research. The setup notes cover the Python package, models, search services, your own documents and the demo interface.
STORM is an open-source project on GitHub in the Research category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.
pip install knowledge-storm
STORM is a language model system that writes Wikipedia-like articles from scratch, based on Internet search. The Stanford Open Virtual Assistant Lab made it, and the name stands for Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking. A pre-writing stage collects references and writes an outline. A writing stage turns the outline and the references into a full-length article with citations. Co-STORM, in the same package, lets you take part: you watch or steer a discussion between AI experts and a moderator. The README says the result is not publication-ready, but experienced Wikipedia editors found it helpful in their pre-writing stage. This listing is Mindket’s setup notes for the Python package, its example scripts and its demo interface.
People who need a cited first draft on a topic they do not know yet, such as students, researchers, writers and editors. Developers who want to build on a knowledge curation engine can change its modules, because the README says STORM is built in a modular way. Skip it if you want a finished article or no setup. You bring a language model and a source to search, and the maker marks the package Alpha.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Wikipedia editing | Experienced Wikipedia editors | Use the generated article in the pre-writing stage | The README says experienced Wikipedia editors found STORM helpful in their pre-writing stage. |
| Research and study | Students and researchers | Read the cited article and its outline on a new topic | The examples README’s quick test grounds STORM on arXiv abstracts and suggests a topic such as the progress of multimodal models in computer vision. |
| Your own documents | Anyone with a collection of documents | Ground a run on a CSV of their own documents with VectorRM | Someone lists the documents in a CSV with content, title, url and description columns, as the examples README shows. |
| Collaborative research | People who want a say in the research | Run Co-STORM and steer the experts | A researcher types an utterance at the Your utterance prompt of the Co-STORM script to steer the discussion. |
| Developers | People who build on the library | Add a model or a search engine, or change a module | CONTRIBUTING.md lists new language model and search engine support among the contributions the maker accepts. |
STORM is Python code that you run from a terminal. The maker gives no steps per operating system. The README documents no skill, plugin or MCP server, so a coding agent can only run its commands for you.
Get it saves a zip of Mindket’s setup notes in your downloads folder, with a page for each route from the maker’s README and docs. You install the package, give it your keys and run an example script.
| Need | Detail |
|---|---|
| Python | 3.10 or newer. The README’s conda line uses 3.11 |
| A language model | A key for a hosted service, or a server you run yourself, such as Ollama or VLLM |
| A source to search | A search API key, DuckDuckGo, or your own documents through VectorRM |
| A source checkout | For the example scripts and the demo interface. The package alone does not hold them |
pip install knowledge-storm
For a source install, the README gives these lines:
git clone https://github.com/stanford-oval/storm.git cd storm conda create -n storm python=3.11 conda activate storm pip install -r requirements.txt
Run the GPT example script from the checkout’s root folder. This is the README’s first example.
python examples/storm_examples/run_storm_wiki_gpt.py \
--output-dir $OUTPUT_DIR \
--retriever bing \
--do-research \
--do-generate-outline \
--do-generate-article \
--do-polish-articleThe script asks for a topic and writes its files to a folder named after the topic. The four do flags switch the stages on. A stage you leave out loads its saved results instead, so you can run the research once and rerun only the writing.
You want a cited overview of a topic you have never read about. You put an OpenAI key, the line OPENAI_API_TYPE="openai" and a Bing Search key in secrets.toml. From the checkout’s root folder, you run the README’s first example:
python examples/storm_examples/run_storm_wiki_gpt.py \
--output-dir $OUTPUT_DIR \
--retriever bing \
--do-research \
--do-generate-outline \
--do-generate-article \
--do-polish-articleYou type the topic at the Topic prompt. When the run ends, the topic’s folder holds the outline, the article and the sources it used, as the table below shows.
| File | What it holds |
|---|---|
| storm_gen_outline.txt | The outline refined with the collected information |
| storm_gen_article.txt | The final article |
| storm_gen_article_polished.txt | The polished article, when polishing was on |
| url_to_info.json | The sources used in the final article |
| conversation_log.json | The log of the information-seeking conversation |
The file url_to_info.json lists the sources the final article used. Read the article as a draft, and check its claims against them. The README says such articles often need a significant number of edits.
If you are new. STORM does what a careful writer does before writing. It asks questions, reads sources, makes an outline and then writes. The README says asking good questions is the core of automating research, and that directly prompting a model to ask questions does not work well. So STORM first looks at articles on similar topics to find different perspectives, then simulates a conversation between a Wikipedia writer and a topic expert, grounded in Internet sources. You supply two outside parts, a language model and a search source. The README also links the maker’s hosted research preview, if you only want to see what it makes. These notes cover the code only.
For experts. The engine has four modules: knowledge curation, outline generation, article generation and article polishing. Each has an interface in knowledge_storm/interface.py and an implementation under knowledge_storm/storm_wiki/modules/. The runner has five language model slots, and the README suggests a cheaper model for the conversation simulator and a stronger one for the article writer. Its example script uses gpt-3.5-turbo for the first two slots and gpt-4o for the other three.
To ground a run on your documents, VectorRM reads a Qdrant vector store that you build from a CSV, offline in a folder or on a Qdrant server. Co-STORM has its own runner with six model slots, a moderator and a turn policy, and the README points to DiscourseManager as the code to change. The maker also publishes two datasets, FreshWiki and WildSeek, and keeps the code behind the STORM paper on its own branch.
STORM’s code runs on your machine, and every run reaches out to the model and search services you set.
This kit holds setup notes only. Mindket wrote them. STORM and Co-STORM install from the stanford-oval repository: https://github.com/stanford-oval/storm
These notes are not made or endorsed by Stanford University or the Stanford Open Virtual Assistant Lab. The README says STORM "is a LLM system that writes Wikipedia-like articles from scratch based on Internet search", and that Co-STORM lets a human work together with the LLM system. The code is a Python library, knowledge-storm. Source: https://github.com/stanford-oval/storm/blob/main/README.md
License: MIT. The LICENSE file (https://github.com/stanford-oval/storm/blob/main/LICENSE) is the MIT License and reads "Copyright (c) 2024 Stanford Open Virtual Assistant Lab". The PyPI entry for knowledge-storm (https://pypi.org/project/knowledge-storm/) names the same license.
The README says the system "cannot produce publication-ready articles that often require a significant number of edits", and that experienced Wikipedia editors found it helpful in their pre-writing stage. The package's setup.py (https://github.com/stanford-oval/storm/blob/main/setup.py) marks it "Development Status :: 3 - Alpha".
knowledge-storm Python package, from PyPI. Its requirements, from requirements.txt (https://github.com/stanford-oval/storm/blob/main/requirements.txt) and the PyPI entry: dspy_ai==2.4.9, wikipedia==1.4.0, sentence-transformers, toml, langchain-text-splitters, trafilatura, langchain-huggingface, qdrant-client, langchain-qdrant, numpy, litellm and diskcache.examples/ and the Streamlit demo in frontend/demo_light/.python_requires=">=3.10", and the README's conda line uses Python 3.11.pip install knowledge-storm
To change how STORM behaves, install from source instead:
git clone https://github.com/stanford-oval/storm.git
cd storm
conda create -n storm python=3.11
conda activate storm
pip install -r requirements.txt
Source: the Installation section of https://github.com/stanford-oval/storm/blob/main/README.md
The README gives no uninstall steps. For updating the package, its 2024/09 news item gives pip install knowledge-storm --upgrade.
What a setup creates: the pip package, the storm folder of the clone, a conda environment called storm if you used the README's line, a secrets.toml file holding your keys (and its copy in .streamlit/ for the demo), the output folders the example scripts write (./results/... by default), the VectorRM vector store folder (./vector_store by default), and, for the demo interface, a DEMO_WORKING_DIR folder. Delete what you made.
A run sends your topic and prompts to the language model you configure, and queries to the search service you pick. VectorRM grounds a run on your own CSV of documents in place of web search, but the example script for it still calls OpenAI or Azure OpenAI models. In its online mode the script also loads your documents into the Qdrant server you name, such as a Qdrant cloud server. In offline mode the store stays in a folder on your disk. The README and the docs pages these notes use say nothing about usage data.
The README links a hosted "Research preview" at https://storm.genie.stanford.edu/. It is a separate hosted service of the maker. These notes cover the code only.
README.md 6 KB setup/co-storm.md 5 KB setup/demo-ui.md 4 KB setup/from-source.md 4 KB setup/library.md 3 KB setup/local-models.md 4 KB setup/models-and-search.md 4 KB setup/own-corpus.md 5 KB
Updated by Mindket to the current version of this kit.
Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Qwen · Kit
Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
AbdomenAtlas · Kit
Detects and outlines tumors in 9 organs on CT scans, trained with the R-Super method that learns from radiology reports. A research model for medical imaging g…
dBenf · Kit
Answers typed questions about satellite image patches from all 12 Sentinel-2 bands, returning a probability for each option without writing text. A Qwen3.5-0.8…
zimmerk4 · Kit
Plays the full game Getting Over It from the bottom to the end with a small trained policy network that learned inside a JAX physics simulator. For reinforceme…