Name | sigmund JSON |
Version |
0.27.1
JSON |
| download |
home_page | None |
Summary | AI-based chatbot that provides sensible answers based on documentation |
upload_time | 2025-01-15 12:00:05 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | None |
keywords |
ai
chatbot
llm
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Sigmund AI
Copyright 2023-2025 Sebastiaan Mathôt
A Python library and web app for an LLM-based chatbot with two main modes:
- __OpenSesame expert__: answers questions about OpenSesame based on documentation
- __Research assistant__: a general purpose chatbot with several tools that are mainly useful for research
Features:
- __Privacy__: all messages and uploaded attachments are encrypted so that no-one can listen in on your conversation
- __Knowledge__ (in OpenSesame mode): access to documentation
- __Continuous conversation__: conversations are summarized w hen they become too long to fit into the prompt
- __Tool use__ (in research-assistant mode):
- __Code execution__: ability to execute Python and R code
- __Google Scholar search__: ability to search for articles on Google Scholar
- __Attachments__: ability to read attachments
- __Download__: ability to download pages and files as attachments
- __Image generation__: ability to generate images
Sigmund is not a large language model itself. Rather it uses third-party models. Currently, models from [OpenAI](https://openai.com), [Anthropic](https://www.anthropic.com/), and [Mistral](https://mistral.ai/) are supported. API keys from these respective providers are required.
## What can Sigmund do? And how does Sigmund work?
For a description of how Sigmund works, see: <https://sigmundai.eu/about>. This page describes the default configuration.
## Configuration
See `sigmund/config.py` for configuration instructions.
## Dependencies
For Python dependencies, see `pyproject.toml`. In addition to these, `pandoc` is required for the ability to read attachments, and a local `redis` server needs to run for persistent data between sessions.
## Running (development)
Download the source code, and in the folder of the source code execute the following:
```
# Specify API keys for model providers. Even when using Anthropic (Claude) or
# Mistral, an OpenAI key is provided when document search is enabled
export OPENAI_API_KEY = 'your key here'
export ANTHROPIC_API_KEY = 'your key here'
export MISTRAL_API_KEY = 'your key here'
pip install . # install dependencies
python index_library.py # build library (documentation) index
python app.py # start the app
```
Next, access the app (by default) through:
```
https://127.0.0.1:5000/
```
## Running (production)
In production, the server is generally not run by directly calling the app. There are many ways to run a Flask app in production. One way is to use gunicorn to start the app, and then use an nginx web server as a proxy that reroutes requests to the app. When taking this route, make sure to set up nginx with a large `client_max_body_size` (to allow attachment uploading) and disable `proxy_cache` and `proxy_buffering` (to allow status messages to be streamed while Sigmund is answering).
## License
Sigmund is distributed under the terms of the GNU General Public License 3. The full license should be included in the file `COPYING`, or can be obtained from:
- <http://www.gnu.org/licenses/gpl.txt>
Raw data
{
"_id": null,
"home_page": null,
"name": "sigmund",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ai, chatbot, llm",
"author": null,
"author_email": "Sebastiaan Math\u00f4t <s.mathot@cogsci.nl>",
"download_url": "https://files.pythonhosted.org/packages/c5/de/515dbb470bcc6961dc40273389c982ce6c0345aedd6fba40b7dcf366a009/sigmund-0.27.1.tar.gz",
"platform": null,
"description": "# Sigmund AI\n\nCopyright 2023-2025 Sebastiaan Math\u00f4t\n\nA Python library and web app for an LLM-based chatbot with two main modes:\n\n- __OpenSesame expert__: answers questions about OpenSesame based on documentation\n- __Research assistant__: a general purpose chatbot with several tools that are mainly useful for research\n\nFeatures:\n\n- __Privacy__: all messages and uploaded attachments are encrypted so that no-one can listen in on your conversation\n- __Knowledge__ (in OpenSesame mode): access to documentation \n- __Continuous conversation__: conversations are summarized w hen they become too long to fit into the prompt\n- __Tool use__ (in research-assistant mode):\n - __Code execution__: ability to execute Python and R code\n - __Google Scholar search__: ability to search for articles on Google Scholar\n - __Attachments__: ability to read attachments\n - __Download__: ability to download pages and files as attachments\n - __Image generation__: ability to generate images\n \nSigmund is not a large language model itself. Rather it uses third-party models. Currently, models from [OpenAI](https://openai.com), [Anthropic](https://www.anthropic.com/), and [Mistral](https://mistral.ai/) are supported. API keys from these respective providers are required.\n\n\n## What can Sigmund do? And how does Sigmund work?\n\nFor a description of how Sigmund works, see: <https://sigmundai.eu/about>. This page describes the default configuration.\n\n\n## Configuration\n\nSee `sigmund/config.py` for configuration instructions.\n\n\n## Dependencies\n\nFor Python dependencies, see `pyproject.toml`. In addition to these, `pandoc` is required for the ability to read attachments, and a local `redis` server needs to run for persistent data between sessions.\n\n\n## Running (development)\n\nDownload the source code, and in the folder of the source code execute the following:\n\n```\n# Specify API keys for model providers. Even when using Anthropic (Claude) or\n# Mistral, an OpenAI key is provided when document search is enabled\nexport OPENAI_API_KEY = 'your key here'\nexport ANTHROPIC_API_KEY = 'your key here'\nexport MISTRAL_API_KEY = 'your key here'\npip install . # install dependencies\npython index_library.py # build library (documentation) index\npython app.py # start the app\n```\n\nNext, access the app (by default) through:\n\n```\nhttps://127.0.0.1:5000/\n```\n\n\n## Running (production)\n\nIn production, the server is generally not run by directly calling the app. There are many ways to run a Flask app in production. One way is to use gunicorn to start the app, and then use an nginx web server as a proxy that reroutes requests to the app. When taking this route, make sure to set up nginx with a large `client_max_body_size` (to allow attachment uploading) and disable `proxy_cache` and `proxy_buffering` (to allow status messages to be streamed while Sigmund is answering).\n\n\n## License\n\nSigmund is distributed under the terms of the GNU General Public License 3. The full license should be included in the file `COPYING`, or can be obtained from:\n\n- <http://www.gnu.org/licenses/gpl.txt>\n\n",
"bugtrack_url": null,
"license": null,
"summary": "AI-based chatbot that provides sensible answers based on documentation",
"version": "0.27.1",
"project_urls": {
"Documentation": "https://sigmundai.eu",
"Source": "https://github.com/open-cogsci/sigmund-ai"
},
"split_keywords": [
"ai",
" chatbot",
" llm"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4f6c9c53c05c932f13304dbfe00a8a5b8dcdf618d2105da0c29d1202cbeec708",
"md5": "b0c531b18774d1925cb7a58511a58f61",
"sha256": "b096000de114d2d0b69ced13c66178e664ee25438055eadaa8344387bdd2b1b3"
},
"downloads": -1,
"filename": "sigmund-0.27.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b0c531b18774d1925cb7a58511a58f61",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 6447524,
"upload_time": "2025-01-15T12:00:02",
"upload_time_iso_8601": "2025-01-15T12:00:02.481561Z",
"url": "https://files.pythonhosted.org/packages/4f/6c/9c53c05c932f13304dbfe00a8a5b8dcdf618d2105da0c29d1202cbeec708/sigmund-0.27.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c5de515dbb470bcc6961dc40273389c982ce6c0345aedd6fba40b7dcf366a009",
"md5": "563151969a3bd9f98d4ac4246b10db3c",
"sha256": "340d2b46360366af5d43d6436b330f114cff7738d99792cf45b0dcbc85113eec"
},
"downloads": -1,
"filename": "sigmund-0.27.1.tar.gz",
"has_sig": false,
"md5_digest": "563151969a3bd9f98d4ac4246b10db3c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 6431710,
"upload_time": "2025-01-15T12:00:05",
"upload_time_iso_8601": "2025-01-15T12:00:05.314970Z",
"url": "https://files.pythonhosted.org/packages/c5/de/515dbb470bcc6961dc40273389c982ce6c0345aedd6fba40b7dcf366a009/sigmund-0.27.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-15 12:00:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "open-cogsci",
"github_project": "sigmund-ai",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "sigmund"
}