# TextWeaver
TextWeaver is a FastAPI-based web server designed for working with Large Language Models (LLMs), specifically with Embeddings-style models. It simplifies the process of handling complex natural language processing tasks and offers a robust and scalable solution for both developers and researchers to store and query against embeddings in Pinecone.
## Features
- **FastAPI Integration**: Leverage the power of FastAPI for creating modern and efficient web APIs.
- **LLM and Embedding Support**: Easily work with LLMs and various embedding models for rich textual analysis.
- **Scalable Architecture**: Designed to grow with your needs, TextWeaver can be deployed across various environments.
- **User-Friendly Configuration**: Get started quickly with intuitive configuration options.
## Installation
Please note that TextWeaver requires the use of Amazon Cognito for authentication. You can find more information on how to set up Cognito [here](https://docs.aws.amazon.com/cognito/latest/developerguide/). Once you have Cognito set up, you can pass the required id tokens to the server using the `Authorization` header.
Please note that TextWeaver requires the use of SNS for sending errors and server events. You can find more information on how to set up SNS [here](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html). Once you have SNS set up, you will need to create a topic and pass the required topic name to the server using the `.env` file.
Please note that TextWeaver requires the use of Pinecone for storing and querying against embeddings. You can find more information on how to set up Pinecone [here](https://www.pinecone.io/docs/). Once you have Pinecone set up, you will need to create two indexes: one for the embeddings and one for the user embeddings. You can then pass the required API key and index names to the server using the `.env` file.
To install TextWeaver, you need to have a .env file in the root directory of your project. This file should contain the following variables:
```bash
HOST_IP="" # The IP to bind the server to - 0.0.0.0 for all interfaces
PORT="" # The port to bind the server to - 80 for HTTP and 443 for HTTPS
AWS_ACCESS_KEY_ID="" # The access key ID for the AWS user (recommended to use an IAM role where possible, or a user with limited permissions)
AWS_SECRET_ACCESS_KEY="" # The secret access key for the AWS user
AWS_DEFAULT_REGION="" # The default region for the AWS user
AWS_COGNITO_REGION="" # The region for the AWS Cognito user pool
AWS_USER_POOL_ID="" # The ID for the AWS Cognito user pool
AWS_USER_POOL_CLIENT_ID="" # The client ID for the AWS Cognito user pool
SNS_TOPIC_NAME="" # The name of the SNS topic to errors and server events to
PINECONE_API_KEY="" # The API key for the Pinecone environment
PINECONE_ENVIRONMENT="" # The name of the Pinecone environment
PINECONE_INDEX_NAME="" # The name of the Pinecone index
PINECONE_USER_INDEX_NAME="" # The name of the Pinecone user index
MODEL_PATH="" # Where the model path is the appropriate path for the sentence_transformer model hosted on HuggingFace
```
Install TextWeaver directly from PyPI using the following command:
```bash
pip install textweaver
```
## Usage
Once installed, you can start the TextWeaver server using the following command:
```bash
textweaver
```
For further customization and detailed documentation, please refer to the project's repository.
## Contribution
We welcome contributions from the community! Please check the contributing guidelines in the repository for more information on how you can get involved.
## License
TextWeaver is released under the MIT License. See the LICENSE file in the repository for more details.
## Contact
For any inquiries, support, or collaboration, please contact the author at wesladd@traingrc.com or open an issue on the project's GitHub page.
Raw data
{
"_id": null,
"home_page": "https://github.com/TrainGRC/textweaver",
"name": "textweaver",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "textweaver,NLP,text-processing,machine-learning",
"author": "Wes Ladd",
"author_email": "wesladd@traingrc.com",
"download_url": "https://files.pythonhosted.org/packages/46/66/9cf0d8cd520feae9679ffc54172728d60ac3f5faa5ad0f9541ac7bf1b052/textweaver-0.3.115.tar.gz",
"platform": null,
"description": "# TextWeaver\n\nTextWeaver is a FastAPI-based web server designed for working with Large Language Models (LLMs), specifically with Embeddings-style models. It simplifies the process of handling complex natural language processing tasks and offers a robust and scalable solution for both developers and researchers to store and query against embeddings in Pinecone.\n\n## Features\n\n- **FastAPI Integration**: Leverage the power of FastAPI for creating modern and efficient web APIs.\n- **LLM and Embedding Support**: Easily work with LLMs and various embedding models for rich textual analysis.\n- **Scalable Architecture**: Designed to grow with your needs, TextWeaver can be deployed across various environments.\n- **User-Friendly Configuration**: Get started quickly with intuitive configuration options.\n\n## Installation\nPlease note that TextWeaver requires the use of Amazon Cognito for authentication. You can find more information on how to set up Cognito [here](https://docs.aws.amazon.com/cognito/latest/developerguide/). Once you have Cognito set up, you can pass the required id tokens to the server using the `Authorization` header.\n\nPlease note that TextWeaver requires the use of SNS for sending errors and server events. You can find more information on how to set up SNS [here](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html). Once you have SNS set up, you will need to create a topic and pass the required topic name to the server using the `.env` file.\n\nPlease note that TextWeaver requires the use of Pinecone for storing and querying against embeddings. You can find more information on how to set up Pinecone [here](https://www.pinecone.io/docs/). Once you have Pinecone set up, you will need to create two indexes: one for the embeddings and one for the user embeddings. You can then pass the required API key and index names to the server using the `.env` file.\n\nTo install TextWeaver, you need to have a .env file in the root directory of your project. This file should contain the following variables:\n```bash\nHOST_IP=\"\" # The IP to bind the server to - 0.0.0.0 for all interfaces\nPORT=\"\" # The port to bind the server to - 80 for HTTP and 443 for HTTPS\nAWS_ACCESS_KEY_ID=\"\" # The access key ID for the AWS user (recommended to use an IAM role where possible, or a user with limited permissions)\nAWS_SECRET_ACCESS_KEY=\"\" # The secret access key for the AWS user\nAWS_DEFAULT_REGION=\"\" # The default region for the AWS user\nAWS_COGNITO_REGION=\"\" # The region for the AWS Cognito user pool\nAWS_USER_POOL_ID=\"\" # The ID for the AWS Cognito user pool\nAWS_USER_POOL_CLIENT_ID=\"\" # The client ID for the AWS Cognito user pool\nSNS_TOPIC_NAME=\"\" # The name of the SNS topic to errors and server events to\nPINECONE_API_KEY=\"\" # The API key for the Pinecone environment\nPINECONE_ENVIRONMENT=\"\" # The name of the Pinecone environment\nPINECONE_INDEX_NAME=\"\" # The name of the Pinecone index\nPINECONE_USER_INDEX_NAME=\"\" # The name of the Pinecone user index\nMODEL_PATH=\"\" # Where the model path is the appropriate path for the sentence_transformer model hosted on HuggingFace\n```\n\nInstall TextWeaver directly from PyPI using the following command:\n```bash\npip install textweaver\n```\n\n## Usage\nOnce installed, you can start the TextWeaver server using the following command:\n\n```bash\ntextweaver\n```\n\nFor further customization and detailed documentation, please refer to the project's repository.\n\n## Contribution\n\nWe welcome contributions from the community! Please check the contributing guidelines in the repository for more information on how you can get involved.\n\n## License\n\nTextWeaver is released under the MIT License. See the LICENSE file in the repository for more details.\n\n## Contact\n\nFor any inquiries, support, or collaboration, please contact the author at wesladd@traingrc.com or open an issue on the project's GitHub page.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A FastAPI-based web server for working with LLMs, embedding models, and Pinecone Vector DB.",
"version": "0.3.115",
"project_urls": {
"Homepage": "https://github.com/TrainGRC/textweaver"
},
"split_keywords": [
"textweaver",
"nlp",
"text-processing",
"machine-learning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f313855e99fcbcfb8ce0399f8b251c65692424def9a785234476f6785645a7bf",
"md5": "333ee9f2319a1f57b7e6c4e8b67815fa",
"sha256": "7d78ad31b8369a39d5b8c50c70bf4a2fb1fd0e174bf43c47a87a867d5c963cc8"
},
"downloads": -1,
"filename": "textweaver-0.3.115-py3-none-any.whl",
"has_sig": false,
"md5_digest": "333ee9f2319a1f57b7e6c4e8b67815fa",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 20488,
"upload_time": "2023-10-27T16:24:59",
"upload_time_iso_8601": "2023-10-27T16:24:59.740958Z",
"url": "https://files.pythonhosted.org/packages/f3/13/855e99fcbcfb8ce0399f8b251c65692424def9a785234476f6785645a7bf/textweaver-0.3.115-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "46669cf0d8cd520feae9679ffc54172728d60ac3f5faa5ad0f9541ac7bf1b052",
"md5": "aa85d4ebe638dc80c2a844390a85a3d1",
"sha256": "f3833417fafc11862a904aa4ea6a2b49d9ee01f4a8b08206f591bff4a835ccac"
},
"downloads": -1,
"filename": "textweaver-0.3.115.tar.gz",
"has_sig": false,
"md5_digest": "aa85d4ebe638dc80c2a844390a85a3d1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 16478,
"upload_time": "2023-10-27T16:25:02",
"upload_time_iso_8601": "2023-10-27T16:25:02.115864Z",
"url": "https://files.pythonhosted.org/packages/46/66/9cf0d8cd520feae9679ffc54172728d60ac3f5faa5ad0f9541ac7bf1b052/textweaver-0.3.115.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-27 16:25:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "TrainGRC",
"github_project": "textweaver",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "textweaver"
}