Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zjunlp/OmniThink

OmniThink: Expanding Knowledge Boundaries in Machine Writing through Thinking
https://github.com/zjunlp/OmniThink

artificial-intelligence generation gpt information-seeking knowledge-augmented-generation large-language-models machine-writing natural-language-processing ominithink qwen retrieval-augmented-generation slow-thinking

Last synced: 11 days ago
JSON representation

OmniThink: Expanding Knowledge Boundaries in Machine Writing through Thinking

Awesome Lists containing this project

README

        






OmniThink




Expanding Knowledge Boundaries in Machine Writing
through Thinking


πŸ‘ Welcome to try OmniThink in our **[ Modelscope online demo](https://www.modelscope.cn/studios/iic/OmniThink)**!


[πŸ€–Project]
[πŸ“„Paper]







## Table of Contents
- 🌻[Quick Start](#quick-start)
- 🌟[Introduction](#Introduction)
- πŸ”§[Dependencies](#Dependencies)
- πŸ“‰[Results](#Results)
- 🧐[Evaluation](#evaluation)
- 🚩[Acknowledgement](#Acknowledgement)

---
Due to the recent high volume of visitors, search API quota limitations, you may encounter an error:```'ValueError: Expected 2D array, got 1D array instead: array=[]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.'```If this error occurs, please try again in a few hours.

## πŸ“– Quick Start

- 🌏 The **Online Demo** is avaiable at [ModelScope](https://www.modelscope.cn/studios/iic/OmniThink) now!

# πŸ“Œ Introduction

Welcome to **OmniThink**, an innovative machine writing framework designed to replicate the human cognitive process of iterative expansion and reflection in generating insightful long-form articles.

- **Iterative Expansion and Reflection**: OmniThink uses a unique mechanism that simulates human cognitive behaviors to deepen the understanding of complex topics.
- **Enhanced Knowledge Density**: OmniThink focuses on expanding knowledge boundaries, resulting in articles that are rich in information and insights.
- **Comprehensive Article Generation**: OmniThink constructs outlines and generates articles, delivering high-quality content that is both coherent and contextually robust.



# πŸ›  Dependencies

```bash
conda create -n OmniThink python=3.11
git clone https://github.com/zjunlp/OmniThink.git
cd OmniThink
# Install requirements
pip install -r requirement.txt

```
πŸ”‘ Before running, please export the OPENAI API key or Dashscope API key and SEARCH key as an environment variable:

```bash
export OPENAI_API_KEY=YOUR_API_KEY
export SEARCHKEY=YOUR_SEARCHKEY
```

or

```bash
export DASHSCOPE_KEY=YOUR_API_KEY
export SEARCHKEY=YOUR_SEARCHKEY
```
> You can define your own [LLM API](https://github.com/zjunlp/OmniThink/blob/main/src/tools/lm.py) and [SEARCH API](https://github.com/zjunlp/OmniThink/blob/main/src/tools/rm.py)

> Note that the output of the LLM should be a LIST.

# Results in OmniThink
The preformance of OmniThink is shown below:



# Generate Article in OmniThink
Just one command required
```bash
sh run.sh
```
You can find your Article, Outline and mindmap in ./results/

# πŸ” Evaluation

We are organizing the evaluation code and will open source it soon.

# 🌻Acknowledgement

- This work is implemented by [DsPY](https://github.com/stanfordnlp/dspy), [STORM](https://github.com/stanford-oval/storm) Sincere thanks for their efforts.
- if you have any questions, please feel free to contact via [email protected], [email protected] or [email protected] or create an issue.

## Citation
If you find our repo useful in your research, please kindly consider cite:
```angular2
@misc{xi2025omnithinkexpandingknowledgeboundaries,
title={OmniThink: Expanding Knowledge Boundaries in Machine Writing through Thinking},
author={Zekun Xi and Wenbiao Yin and Jizhan Fang and Jialong Wu and Runnan Fang and Ningyu Zhang and Jiang Yong and Pengjun Xie and Fei Huang and Huajun Chen},
year={2025},
eprint={2501.09751},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2501.09751},
}
```