# Oracle of Ammon
[![PyPI version shield](https://img.shields.io/pypi/v/oracle-of-ammon?color=blue&style=flat-square)](https://pypi.org/project/oracle-of-ammon/)
[![Python version shield](https://img.shields.io/pypi/pyversions/oracle-of-ammon?color=blue&style=flat-square)](https://pypi.org/project/oracle-of-ammon/)
[![MIT License](https://img.shields.io/github/license/kmcleste/oracle-of-ammon?style=flat-square)](https://github.com/kmcleste/oracle-of-ammon/blob/main/LICENSE)
A simple CLI tool for creating Search APIs.
## Installation
Creating a virtual environment is highly recommended. To do so, run:
```bash
python3 -m venv .venv
source .venv/bin/activate
```
Once your environment is active, simply install the package with:
```bash
pip install oracle-of-ammon
```
## Usage
To get started, checkout the help menu:
```bash
oracle-of-ammon --help
```
[![Image of oracle-of-ammon cli help documentaiton](https://github.com/kmcleste/oracle-of-ammon/blob/main/images/oracle-of-ammon-help.gif?raw=true)](https://github.com/faressoft/terminalizer)
Here, you will see we currently have two options: **summon** and **locust**.
### Summon
By default, Summon is configured to initialize an empty search service on port 8000. The API framework used is [FastAPI](https://fastapi.tiangolo.com/) and the underlying search engine is built on [Haystack](https://docs.haystack.deepset.ai/). If you would like to initialize the search service with documents upon startup, provide a filepath with the `--path` option. Once the service has been initialized, you can view the API docs at [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs). A static version of the swagger documentation can also be found [here](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/kmcleste/oracle-of-ammon/main/openapi.json#/).
| Option | Type | Default | Description |
| ------------- | ---- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| --path | TEXT | None | Filepath used to pre-index document store. |
| --sheet-name | TEXT | None | If using an excel file, select which sheet(s) to load. If none provided, all sheets will be loaded. Expects a comma-separated list. |
| --title | TEXT | Oracle of Ammon | API documentation title. |
| --index | TEXT | document | Default index name. |
| --faq | BOOL | TRUE | Selector for content preloaded into document store. |
Supported Filetypes:
- FAQ: CSV, TSV, JSON, XLSX, TXT
- Semantic: TXT
See the [`data`](https://github.com/kmcleste/oracle-of-ammon/tree/main/oracle_of_ammon/data) directory for examples of accepted files.
[![Oracle of Ammon CLI - Summon](https://github.com/kmcleste/oracle-of-ammon/blob/main/images/oracle-of-ammon-summon.gif?raw=true)](https://github.com/faressoft/terminalizer)
### Locust
[Locust](https://locust.io/) is an open source tool for load testing. You're able to swarm your system with millions of simultaneous users -- recording service performance and other metrics. By default, Locust will start on port 8089. To start a new load test, simply enter the number of users you want to simulate, their spawn rate, and the host address to swarm.
[![Image of locust config](https://github.com/kmcleste/oracle-of-ammon/blob/main/images/locust-config.png?raw=true)](https://locust.io)]
## Coming Eventually 👀
- ~~Semantic search~~
- ~~Document search~~
- ~~Document summarization~~
- Document ranking
- ~~Multiple index support~~
- Annotations/Feedback
- Fine tuning
- Additional locust endpoints
- Dynamic Locust config
- Custom pipelines
- Dedicated docs wiki
Raw data
{
"_id": null,
"home_page": "https://kmcleste.github.io/oracle-of-ammon/",
"name": "oracle-of-ammon",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8.1,<3.11",
"maintainer_email": "",
"keywords": "fastapi,haystack,search,faq,typer",
"author": "Kyle McLester",
"author_email": "kyle.mclester@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/b8/45/74c940c2285b4521f6945dd98e0a73924a59352d51c3949a2c0fec9c008c/oracle_of_ammon-0.3.1.tar.gz",
"platform": null,
"description": "# Oracle of Ammon\n\n[![PyPI version shield](https://img.shields.io/pypi/v/oracle-of-ammon?color=blue&style=flat-square)](https://pypi.org/project/oracle-of-ammon/)\n[![Python version shield](https://img.shields.io/pypi/pyversions/oracle-of-ammon?color=blue&style=flat-square)](https://pypi.org/project/oracle-of-ammon/)\n[![MIT License](https://img.shields.io/github/license/kmcleste/oracle-of-ammon?style=flat-square)](https://github.com/kmcleste/oracle-of-ammon/blob/main/LICENSE)\n\nA simple CLI tool for creating Search APIs.\n\n## Installation\n\nCreating a virtual environment is highly recommended. To do so, run:\n\n```bash\npython3 -m venv .venv\nsource .venv/bin/activate\n```\n\nOnce your environment is active, simply install the package with:\n\n```bash\npip install oracle-of-ammon\n```\n\n## Usage\n\nTo get started, checkout the help menu:\n\n```bash\noracle-of-ammon --help\n```\n\n[![Image of oracle-of-ammon cli help documentaiton](https://github.com/kmcleste/oracle-of-ammon/blob/main/images/oracle-of-ammon-help.gif?raw=true)](https://github.com/faressoft/terminalizer)\n\nHere, you will see we currently have two options: **summon** and **locust**.\n\n### Summon\n\nBy default, Summon is configured to initialize an empty search service on port 8000. The API framework used is [FastAPI](https://fastapi.tiangolo.com/) and the underlying search engine is built on [Haystack](https://docs.haystack.deepset.ai/). If you would like to initialize the search service with documents upon startup, provide a filepath with the `--path` option. Once the service has been initialized, you can view the API docs at [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs). A static version of the swagger documentation can also be found [here](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/kmcleste/oracle-of-ammon/main/openapi.json#/).\n\n| Option | Type | Default | Description |\n| ------------- | ---- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| --path | TEXT | None | Filepath used to pre-index document store. |\n| --sheet-name | TEXT | None | If using an excel file, select which sheet(s) to load. If none provided, all sheets will be loaded. Expects a comma-separated list. |\n| --title | TEXT | Oracle of Ammon | API documentation title. |\n| --index | TEXT | document | Default index name. |\n| --faq | BOOL | TRUE | Selector for content preloaded into document store. |\n\nSupported Filetypes:\n\n- FAQ: CSV, TSV, JSON, XLSX, TXT\n- Semantic: TXT\n\nSee the [`data`](https://github.com/kmcleste/oracle-of-ammon/tree/main/oracle_of_ammon/data) directory for examples of accepted files.\n\n[![Oracle of Ammon CLI - Summon](https://github.com/kmcleste/oracle-of-ammon/blob/main/images/oracle-of-ammon-summon.gif?raw=true)](https://github.com/faressoft/terminalizer)\n\n### Locust\n\n[Locust](https://locust.io/) is an open source tool for load testing. You're able to swarm your system with millions of simultaneous users -- recording service performance and other metrics. By default, Locust will start on port 8089. To start a new load test, simply enter the number of users you want to simulate, their spawn rate, and the host address to swarm.\n\n[![Image of locust config](https://github.com/kmcleste/oracle-of-ammon/blob/main/images/locust-config.png?raw=true)](https://locust.io)]\n\n## Coming Eventually \ud83d\udc40\n\n- ~~Semantic search~~\n- ~~Document search~~\n- ~~Document summarization~~\n- Document ranking\n- ~~Multiple index support~~\n- Annotations/Feedback\n- Fine tuning\n- Additional locust endpoints\n- Dynamic Locust config\n- Custom pipelines\n- Dedicated docs wiki\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CLI tool for creating Search APIs.",
"version": "0.3.1",
"split_keywords": [
"fastapi",
"haystack",
"search",
"faq",
"typer"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e751deb0dc591741873ee99d3e1c6d3b10f78b7a10148ee1a6996290f57f41a1",
"md5": "4075cee4800d21c4e54ca06f046416e4",
"sha256": "2eab53b1d1c3b476b782d72afd480304a0dd6579c39bbd19ebede710ca920c53"
},
"downloads": -1,
"filename": "oracle_of_ammon-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4075cee4800d21c4e54ca06f046416e4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.1,<3.11",
"size": 39951,
"upload_time": "2023-02-12T01:18:08",
"upload_time_iso_8601": "2023-02-12T01:18:08.710236Z",
"url": "https://files.pythonhosted.org/packages/e7/51/deb0dc591741873ee99d3e1c6d3b10f78b7a10148ee1a6996290f57f41a1/oracle_of_ammon-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b84574c940c2285b4521f6945dd98e0a73924a59352d51c3949a2c0fec9c008c",
"md5": "85a10cdd8668145248771001698833dc",
"sha256": "b0949a940051038dc4bd03eb98806a7ae2cd0d5d321424fdf3bea09a642cf6f3"
},
"downloads": -1,
"filename": "oracle_of_ammon-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "85a10cdd8668145248771001698833dc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.1,<3.11",
"size": 34495,
"upload_time": "2023-02-12T01:18:10",
"upload_time_iso_8601": "2023-02-12T01:18:10.459974Z",
"url": "https://files.pythonhosted.org/packages/b8/45/74c940c2285b4521f6945dd98e0a73924a59352d51c3949a2c0fec9c008c/oracle_of_ammon-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-02-12 01:18:10",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "oracle-of-ammon"
}