sigmund


Namesigmund JSON
Version 0.30.0 PyPI version JSON
download
home_pageNone
SummaryAI-based chatbot that provides sensible answers based on documentation
upload_time2025-02-07 11:18:42
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
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

![](artwork/sigmund-avatar-small.png)

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.


![](artwork/screenshot.png)

## 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:

```
http://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/9f/69/fd990fe9859db09974cd43b8545fe1be793fed6e48f6863cbd2bd296f3e4/sigmund-0.30.0.tar.gz",
    "platform": null,
    "description": "# Sigmund AI\n\nCopyright 2023-2025 Sebastiaan Math\u00f4t\n\n![](artwork/sigmund-avatar-small.png)\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![](artwork/screenshot.png)\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```\nhttp://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.30.0",
    "project_urls": {
        "Documentation": "https://sigmundai.eu",
        "Source": "https://github.com/open-cogsci/sigmund-ai"
    },
    "split_keywords": [
        "ai",
        " chatbot",
        " llm"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4b57ec3f6651f99b53c538417ab3659f596c4cf52e38534e7df3b60ccc2ed828",
                "md5": "cd87976e36b92afbe6b075f5b80bfa55",
                "sha256": "64d4b04becedf0d1cfd2b32346a5e8f66773d27656c78723640b1fc175864f22"
            },
            "downloads": -1,
            "filename": "sigmund-0.30.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cd87976e36b92afbe6b075f5b80bfa55",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6457970,
            "upload_time": "2025-02-07T11:18:39",
            "upload_time_iso_8601": "2025-02-07T11:18:39.204583Z",
            "url": "https://files.pythonhosted.org/packages/4b/57/ec3f6651f99b53c538417ab3659f596c4cf52e38534e7df3b60ccc2ed828/sigmund-0.30.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9f69fd990fe9859db09974cd43b8545fe1be793fed6e48f6863cbd2bd296f3e4",
                "md5": "80dc14308e5ada9ef86c94dc560891b0",
                "sha256": "3135a21fe0e72cfae3d131a8a0a40112e697d7f231b0891988ef4ee7e182fd6d"
            },
            "downloads": -1,
            "filename": "sigmund-0.30.0.tar.gz",
            "has_sig": false,
            "md5_digest": "80dc14308e5ada9ef86c94dc560891b0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 6439946,
            "upload_time": "2025-02-07T11:18:42",
            "upload_time_iso_8601": "2025-02-07T11:18:42.135464Z",
            "url": "https://files.pythonhosted.org/packages/9f/69/fd990fe9859db09974cd43b8545fe1be793fed6e48f6863cbd2bd296f3e4/sigmund-0.30.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-07 11:18:42",
    "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"
}
        
Elapsed time: 0.43558s