ShrutiAI


NameShrutiAI JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/shrisai-tech/shruti-ai-sdk
SummaryPython SDK for interacting with the shrutiAI API - your AI-powered assistant
upload_time2025-09-18 11:38:01
maintainerNone
docs_urlNone
authorShri Sai Technology
requires_python>=3.8
licenseMIT License Copyright (c) 2024 Shri Sai Technology (SST) India Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords ai chat assistant api sdk shruti artificial-intelligence chatbot voice location otp verification image-analysis document-processing farming travel math search youtube
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # shrutiAI SDK

A Python SDK for interacting with the shrutiAI API - your AI-powered assistant for chat, location services, OTP verification, and more.

## Installation

```bash
pip install ShrutiAI
```
## πŸ” Authentication

**All API requests require authentication.** The SDK automatically handles this for you:

```python
from ShrutiAI import ShrutiAIClient

client = ShrutiAIClient(api_key="your-secret-api-key")
```

**Direct API access is not permitted.** All requests must go through the authenticated SDK client.

## Quick Start

```python
from ShrutiAI import ShrutiAIClient

# Initialize the client
client = ShrutiAIClient(api_key="your-api-key")

# Send a chat message
response = client.chat(message="Hello, how are you?")
print(response['response'])
```

## Features

- πŸ€– **AI Chat**: Natural language conversations with AI assistant
- πŸ“± **OTP Verification**: Send OTP via AWS SNS, Twilio, or MSG91
- πŸ“ **Location Services**: Location-based queries and place searches
- πŸ–ΌοΈ **Image Analysis**: Analyze images with AI
- πŸ“„ **Document Processing**: Extract and analyze text from documents
- 🌾 **Farming Assistant**: Specialized agricultural advice
- ✈️ **Travel Information**: Flight and train tracking
- πŸ” **Web Search**: Intelligent web search capabilities
- πŸ“Š **Math & Graphs**: Mathematical problem solving and plotting
- πŸŽ₯ **YouTube Integration**: Find relevant video content

## Authentication

You need an API key to use the shrutiAI SDK. Contact Shri Sai Technology to obtain your API key.

```python
client = ShrutiAIClient(
    api_key="your-api-key",
    base_url="https://api.shruti.ai"  # Optional: defaults to localhost
)
```

## Usage Examples

### Basic Chat

```python
from ShrutiAI import ShrutiAIClient

client = ShrutiAIClient(api_key="your-api-key")

# Everything goes through the single chat() method!
# AI automatically determines which tools to use based on your message

# Simple conversation
response = client.chat(message="Hello, how are you?")
print(response['response'])

# Location-based queries
response = client.chat(
    message="Find pizza restaurants near me",
    latitude="12.9716",
    longitude="77.5946",
    language="english"
)
print(response['response'])

# Any type of query - AI handles it all!
response = client.chat(message="What's the weather in Bangalore?")
response = client.chat(message="Get train status for Rajdhani Express")
response = client.chat(message="Solve this math problem: 2x + 3 = 7")
response = client.chat(message="Find hospitals nearby", latitude="12.9716", longitude="77.5946")

### OTP Verification

```python
# Send OTP via AWS SNS
result = client.verify_otp_aws("+1234567890")
print(f"OTP sent: {result['otp']}")

# Send OTP via Twilio
result = client.verify_otp_twilio("+1234567890")
print(f"OTP sent: {result['otp']}")

# Send OTP via MSG91
result = client.verify_otp_msg91("+1234567890")
print(f"OTP sent: {result['otp']}")
```

### Image Analysis

```python
# Analyze an image
response = client.chat(
    message="What's in this image?",
    image_path="/path/to/your/image.jpg"
)
print(response['response'])
```

### Document Processing

```python
# Process a PDF document
response = client.chat(
    message="Summarize this document",
    file_path="/path/to/document.pdf"
)
print(response['response'])
```

### Context Manager Usage

```python
from ShrutiAI import ShrutiAIClient

# Use as context manager for automatic cleanup
with ShrutiAIClient(api_key="your-api-key") as client:
    response = client.chat(message="Hello!")
    print(response['response'])
    # Session automatically closed
```

### Conversation Management

```python
# Maintain conversation context
conversation_id = None

# First message
response = client.chat(
    message="Hi, I need help with farming",
    conversation_id=conversation_id
)
conversation_id = response.get('conversation_id')

# Follow-up message
response = client.chat(
    message="What crops should I grow in winter?",
    conversation_id=conversation_id
)
print(response['response'])
```

## Error Handling

The SDK provides specific exception types for different error conditions:

```python
from ShrutiAI import (
    ShrutiAIClient,
    AuthenticationError,
    RateLimitError,
    NotFoundError,
    ValidationError,
    ServerError,
    NetworkError
)

try:
    client = ShrutiAIClient(api_key="your-api-key")
    response = client.chat(message="Hello!")
except AuthenticationError as e:
    print(f"Authentication failed: {e}")
except RateLimitError as e:
    print(f"Rate limit exceeded: {e}")
except ValidationError as e:
    print(f"Invalid input: {e}")
except ServerError as e:
    print(f"Server error: {e}")
except NetworkError as e:
    print(f"Network error: {e}")
except Exception as e:
    print(f"Unexpected error: {e}")
```

## Advanced Configuration

### Custom Timeout

```python
client = ShrutiAIClient(
    api_key="your-api-key",
    base_url="https://api.shruti.ai",
    timeout=60  # 60 seconds timeout
)
```

### Multi-language Support

```python
# Chat in different languages
response = client.chat(
    message="ΒΏCΓ³mo estΓ‘s?",
    language="spanish"
)

response = client.chat(
    message="Comment allez-vous?",
    language="french"
)

response = client.chat(
    message="Wie geht es dir?",
    language="german"
)
```

## API Methods

### Core Methods

- `chat()` - Send messages to AI assistant
- `verify_otp_aws()` - Send OTP via AWS SNS
- `verify_otp_twilio()` - Send OTP via Twilio
- `verify_otp_msg91()` - Send OTP via MSG91
- `health_check()` - Check API health
- `get_api_info()` - Get API information

### Helper Methods

The SDK provides a few helper methods for common use cases, but everything ultimately uses the single `chat()` method:

**Helper Methods:**
- `ask_about_restaurants()` - Helper for restaurant queries
- `ask_about_hospitals()` - Helper for hospital queries
- `ask_about_weather()` - Helper for weather queries

**Single Entry Point Philosophy:**
All functionality goes through the `chat()` method - just like your backend's `/api/chat-tool` endpoint! The AI backend automatically determines which tools to use based on your message content. Simply ask questions naturally and the AI will handle the rest!

**Example Usage:**
```python
# Everything uses the same chat() method
client.chat(message="Find pizza restaurants near me")
client.chat(message="What's the weather in Bangalore?")
client.chat(message="Get train status for Rajdhani Express")
client.chat(message="Solve: 2x + 3 = 7")
client.chat(message="What crops should I grow in winter?")
```

### Parameters

#### Chat Method Parameters

- `message` (str): The message to send to the AI
- `user_id` (str, optional): User identifier for conversation tracking
- `conversation_id` (str, optional): Conversation identifier
- `latitude` (str, optional): Latitude for location-based queries
- `longitude` (str, optional): Longitude for location-based queries
- `language` (str): Response language (default: "english")
- `image_path` (str, optional): Path to image file for analysis
- `file_path` (str, optional): Path to document file for analysis

## Response Format

All methods return a dictionary with the following structure:

```python
{
    "response": "AI response text",
    "conversation_id": "conversation-identifier",
    "urls": {
        "restaurants": [...],
        "places": [...],
        "hospitals": [...],
        "pharmacies": [...],
        "groceries": [...],
        "accomodations": [...],
        "travel_info": {
            "trains": [...],
            "buses": [...],
            "cabs": [...],
            "flights": [...]
        },
        "flight_details": {...},
        "soil_details": {...},
        "math_graph_plotter": {...},
        "train_details": {...},
        "repair_service_result": [...],
        "items": [...],
        "extra_info": {...},
        "youtube_result": [...]
    }
}
```

## Supported Languages

The SDK supports multiple languages for responses:
- English (default)
- Spanish
- French
- German
- Hindi
- And many more...

## Rate Limits

The API has rate limits to ensure fair usage. The SDK automatically handles rate limit errors and raises `RateLimitError` exceptions when limits are exceeded.

## Contributing

Contributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Support

- πŸ“§ Email: support@sstus.net
- 🌐 Website: https://shruti.ai/
- 🏒 Company: Shri Sai Technology (SST) India

## Changelog

### Version 1.0.0
- Initial release
- Basic chat functionality
- OTP verification (AWS, Twilio, MSG91)
- Image and document processing
- Location-based services
- Multi-language support
- Comprehensive error handling

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/shrisai-tech/shruti-ai-sdk",
    "name": "ShrutiAI",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "ai, chat, assistant, api, sdk, shruti, artificial-intelligence, chatbot, voice, location, otp, verification, image-analysis, document-processing, farming, travel, math, search, youtube",
    "author": "Shri Sai Technology",
    "author_email": "Shri Sai Technology <support@sstus.net>",
    "download_url": "https://files.pythonhosted.org/packages/68/40/eb0f85526922c7e00d189359c22108b01a972dcee3d9f8f215c47c13b73d/shrutiai-1.0.1.tar.gz",
    "platform": null,
    "description": "# shrutiAI SDK\r\n\r\nA Python SDK for interacting with the shrutiAI API - your AI-powered assistant for chat, location services, OTP verification, and more.\r\n\r\n## Installation\r\n\r\n```bash\r\npip install ShrutiAI\r\n```\r\n## \ud83d\udd10 Authentication\r\n\r\n**All API requests require authentication.** The SDK automatically handles this for you:\r\n\r\n```python\r\nfrom ShrutiAI import ShrutiAIClient\r\n\r\nclient = ShrutiAIClient(api_key=\"your-secret-api-key\")\r\n```\r\n\r\n**Direct API access is not permitted.** All requests must go through the authenticated SDK client.\r\n\r\n## Quick Start\r\n\r\n```python\r\nfrom ShrutiAI import ShrutiAIClient\r\n\r\n# Initialize the client\r\nclient = ShrutiAIClient(api_key=\"your-api-key\")\r\n\r\n# Send a chat message\r\nresponse = client.chat(message=\"Hello, how are you?\")\r\nprint(response['response'])\r\n```\r\n\r\n## Features\r\n\r\n- \ud83e\udd16 **AI Chat**: Natural language conversations with AI assistant\r\n- \ud83d\udcf1 **OTP Verification**: Send OTP via AWS SNS, Twilio, or MSG91\r\n- \ud83d\udccd **Location Services**: Location-based queries and place searches\r\n- \ud83d\uddbc\ufe0f **Image Analysis**: Analyze images with AI\r\n- \ud83d\udcc4 **Document Processing**: Extract and analyze text from documents\r\n- \ud83c\udf3e **Farming Assistant**: Specialized agricultural advice\r\n- \u2708\ufe0f **Travel Information**: Flight and train tracking\r\n- \ud83d\udd0d **Web Search**: Intelligent web search capabilities\r\n- \ud83d\udcca **Math & Graphs**: Mathematical problem solving and plotting\r\n- \ud83c\udfa5 **YouTube Integration**: Find relevant video content\r\n\r\n## Authentication\r\n\r\nYou need an API key to use the shrutiAI SDK. Contact Shri Sai Technology to obtain your API key.\r\n\r\n```python\r\nclient = ShrutiAIClient(\r\n    api_key=\"your-api-key\",\r\n    base_url=\"https://api.shruti.ai\"  # Optional: defaults to localhost\r\n)\r\n```\r\n\r\n## Usage Examples\r\n\r\n### Basic Chat\r\n\r\n```python\r\nfrom ShrutiAI import ShrutiAIClient\r\n\r\nclient = ShrutiAIClient(api_key=\"your-api-key\")\r\n\r\n# Everything goes through the single chat() method!\r\n# AI automatically determines which tools to use based on your message\r\n\r\n# Simple conversation\r\nresponse = client.chat(message=\"Hello, how are you?\")\r\nprint(response['response'])\r\n\r\n# Location-based queries\r\nresponse = client.chat(\r\n    message=\"Find pizza restaurants near me\",\r\n    latitude=\"12.9716\",\r\n    longitude=\"77.5946\",\r\n    language=\"english\"\r\n)\r\nprint(response['response'])\r\n\r\n# Any type of query - AI handles it all!\r\nresponse = client.chat(message=\"What's the weather in Bangalore?\")\r\nresponse = client.chat(message=\"Get train status for Rajdhani Express\")\r\nresponse = client.chat(message=\"Solve this math problem: 2x + 3 = 7\")\r\nresponse = client.chat(message=\"Find hospitals nearby\", latitude=\"12.9716\", longitude=\"77.5946\")\r\n\r\n### OTP Verification\r\n\r\n```python\r\n# Send OTP via AWS SNS\r\nresult = client.verify_otp_aws(\"+1234567890\")\r\nprint(f\"OTP sent: {result['otp']}\")\r\n\r\n# Send OTP via Twilio\r\nresult = client.verify_otp_twilio(\"+1234567890\")\r\nprint(f\"OTP sent: {result['otp']}\")\r\n\r\n# Send OTP via MSG91\r\nresult = client.verify_otp_msg91(\"+1234567890\")\r\nprint(f\"OTP sent: {result['otp']}\")\r\n```\r\n\r\n### Image Analysis\r\n\r\n```python\r\n# Analyze an image\r\nresponse = client.chat(\r\n    message=\"What's in this image?\",\r\n    image_path=\"/path/to/your/image.jpg\"\r\n)\r\nprint(response['response'])\r\n```\r\n\r\n### Document Processing\r\n\r\n```python\r\n# Process a PDF document\r\nresponse = client.chat(\r\n    message=\"Summarize this document\",\r\n    file_path=\"/path/to/document.pdf\"\r\n)\r\nprint(response['response'])\r\n```\r\n\r\n### Context Manager Usage\r\n\r\n```python\r\nfrom ShrutiAI import ShrutiAIClient\r\n\r\n# Use as context manager for automatic cleanup\r\nwith ShrutiAIClient(api_key=\"your-api-key\") as client:\r\n    response = client.chat(message=\"Hello!\")\r\n    print(response['response'])\r\n    # Session automatically closed\r\n```\r\n\r\n### Conversation Management\r\n\r\n```python\r\n# Maintain conversation context\r\nconversation_id = None\r\n\r\n# First message\r\nresponse = client.chat(\r\n    message=\"Hi, I need help with farming\",\r\n    conversation_id=conversation_id\r\n)\r\nconversation_id = response.get('conversation_id')\r\n\r\n# Follow-up message\r\nresponse = client.chat(\r\n    message=\"What crops should I grow in winter?\",\r\n    conversation_id=conversation_id\r\n)\r\nprint(response['response'])\r\n```\r\n\r\n## Error Handling\r\n\r\nThe SDK provides specific exception types for different error conditions:\r\n\r\n```python\r\nfrom ShrutiAI import (\r\n    ShrutiAIClient,\r\n    AuthenticationError,\r\n    RateLimitError,\r\n    NotFoundError,\r\n    ValidationError,\r\n    ServerError,\r\n    NetworkError\r\n)\r\n\r\ntry:\r\n    client = ShrutiAIClient(api_key=\"your-api-key\")\r\n    response = client.chat(message=\"Hello!\")\r\nexcept AuthenticationError as e:\r\n    print(f\"Authentication failed: {e}\")\r\nexcept RateLimitError as e:\r\n    print(f\"Rate limit exceeded: {e}\")\r\nexcept ValidationError as e:\r\n    print(f\"Invalid input: {e}\")\r\nexcept ServerError as e:\r\n    print(f\"Server error: {e}\")\r\nexcept NetworkError as e:\r\n    print(f\"Network error: {e}\")\r\nexcept Exception as e:\r\n    print(f\"Unexpected error: {e}\")\r\n```\r\n\r\n## Advanced Configuration\r\n\r\n### Custom Timeout\r\n\r\n```python\r\nclient = ShrutiAIClient(\r\n    api_key=\"your-api-key\",\r\n    base_url=\"https://api.shruti.ai\",\r\n    timeout=60  # 60 seconds timeout\r\n)\r\n```\r\n\r\n### Multi-language Support\r\n\r\n```python\r\n# Chat in different languages\r\nresponse = client.chat(\r\n    message=\"\u00bfC\u00f3mo est\u00e1s?\",\r\n    language=\"spanish\"\r\n)\r\n\r\nresponse = client.chat(\r\n    message=\"Comment allez-vous?\",\r\n    language=\"french\"\r\n)\r\n\r\nresponse = client.chat(\r\n    message=\"Wie geht es dir?\",\r\n    language=\"german\"\r\n)\r\n```\r\n\r\n## API Methods\r\n\r\n### Core Methods\r\n\r\n- `chat()` - Send messages to AI assistant\r\n- `verify_otp_aws()` - Send OTP via AWS SNS\r\n- `verify_otp_twilio()` - Send OTP via Twilio\r\n- `verify_otp_msg91()` - Send OTP via MSG91\r\n- `health_check()` - Check API health\r\n- `get_api_info()` - Get API information\r\n\r\n### Helper Methods\r\n\r\nThe SDK provides a few helper methods for common use cases, but everything ultimately uses the single `chat()` method:\r\n\r\n**Helper Methods:**\r\n- `ask_about_restaurants()` - Helper for restaurant queries\r\n- `ask_about_hospitals()` - Helper for hospital queries\r\n- `ask_about_weather()` - Helper for weather queries\r\n\r\n**Single Entry Point Philosophy:**\r\nAll functionality goes through the `chat()` method - just like your backend's `/api/chat-tool` endpoint! The AI backend automatically determines which tools to use based on your message content. Simply ask questions naturally and the AI will handle the rest!\r\n\r\n**Example Usage:**\r\n```python\r\n# Everything uses the same chat() method\r\nclient.chat(message=\"Find pizza restaurants near me\")\r\nclient.chat(message=\"What's the weather in Bangalore?\")\r\nclient.chat(message=\"Get train status for Rajdhani Express\")\r\nclient.chat(message=\"Solve: 2x + 3 = 7\")\r\nclient.chat(message=\"What crops should I grow in winter?\")\r\n```\r\n\r\n### Parameters\r\n\r\n#### Chat Method Parameters\r\n\r\n- `message` (str): The message to send to the AI\r\n- `user_id` (str, optional): User identifier for conversation tracking\r\n- `conversation_id` (str, optional): Conversation identifier\r\n- `latitude` (str, optional): Latitude for location-based queries\r\n- `longitude` (str, optional): Longitude for location-based queries\r\n- `language` (str): Response language (default: \"english\")\r\n- `image_path` (str, optional): Path to image file for analysis\r\n- `file_path` (str, optional): Path to document file for analysis\r\n\r\n## Response Format\r\n\r\nAll methods return a dictionary with the following structure:\r\n\r\n```python\r\n{\r\n    \"response\": \"AI response text\",\r\n    \"conversation_id\": \"conversation-identifier\",\r\n    \"urls\": {\r\n        \"restaurants\": [...],\r\n        \"places\": [...],\r\n        \"hospitals\": [...],\r\n        \"pharmacies\": [...],\r\n        \"groceries\": [...],\r\n        \"accomodations\": [...],\r\n        \"travel_info\": {\r\n            \"trains\": [...],\r\n            \"buses\": [...],\r\n            \"cabs\": [...],\r\n            \"flights\": [...]\r\n        },\r\n        \"flight_details\": {...},\r\n        \"soil_details\": {...},\r\n        \"math_graph_plotter\": {...},\r\n        \"train_details\": {...},\r\n        \"repair_service_result\": [...],\r\n        \"items\": [...],\r\n        \"extra_info\": {...},\r\n        \"youtube_result\": [...]\r\n    }\r\n}\r\n```\r\n\r\n## Supported Languages\r\n\r\nThe SDK supports multiple languages for responses:\r\n- English (default)\r\n- Spanish\r\n- French\r\n- German\r\n- Hindi\r\n- And many more...\r\n\r\n## Rate Limits\r\n\r\nThe API has rate limits to ensure fair usage. The SDK automatically handles rate limit errors and raises `RateLimitError` exceptions when limits are exceeded.\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## Support\r\n\r\n- \ud83d\udce7 Email: support@sstus.net\r\n- \ud83c\udf10 Website: https://shruti.ai/\r\n- \ud83c\udfe2 Company: Shri Sai Technology (SST) India\r\n\r\n## Changelog\r\n\r\n### Version 1.0.0\r\n- Initial release\r\n- Basic chat functionality\r\n- OTP verification (AWS, Twilio, MSG91)\r\n- Image and document processing\r\n- Location-based services\r\n- Multi-language support\r\n- Comprehensive error handling\r\n",
    "bugtrack_url": null,
    "license": "MIT License\r\n        \r\n        Copyright (c) 2024 Shri Sai Technology (SST) India\r\n        \r\n        Permission is hereby granted, free of charge, to any person obtaining a copy\r\n        of this software and associated documentation files (the \"Software\"), to deal\r\n        in the Software without restriction, including without limitation the rights\r\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n        copies of the Software, and to permit persons to whom the Software is\r\n        furnished to do so, subject to the following conditions:\r\n        \r\n        The above copyright notice and this permission notice shall be included in all\r\n        copies or substantial portions of the Software.\r\n        \r\n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n        SOFTWARE.\r\n        ",
    "summary": "Python SDK for interacting with the shrutiAI API - your AI-powered assistant",
    "version": "1.0.1",
    "project_urls": {
        "Bug Reports": "https://github.com/shrisai-tech/shruti-ai-sdk/issues",
        "Documentation": "https://shruti.ai/docs",
        "Homepage": "https://shruti.ai/",
        "Repository": "https://github.com/shrisai-tech/shruti-ai-sdk"
    },
    "split_keywords": [
        "ai",
        " chat",
        " assistant",
        " api",
        " sdk",
        " shruti",
        " artificial-intelligence",
        " chatbot",
        " voice",
        " location",
        " otp",
        " verification",
        " image-analysis",
        " document-processing",
        " farming",
        " travel",
        " math",
        " search",
        " youtube"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e67df14a805011b7407aea4a6ed0e728053a4d1d4bdbb3274df2489af7dbeb1d",
                "md5": "7b7d452567b1016267056f4b8278ff85",
                "sha256": "cf3b88e684c6ebacbe7fb30adaaa9a14ad9d6c3335cd9cb16799f83332f40588"
            },
            "downloads": -1,
            "filename": "shrutiai-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7b7d452567b1016267056f4b8278ff85",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 9977,
            "upload_time": "2025-09-18T11:38:00",
            "upload_time_iso_8601": "2025-09-18T11:38:00.609775Z",
            "url": "https://files.pythonhosted.org/packages/e6/7d/f14a805011b7407aea4a6ed0e728053a4d1d4bdbb3274df2489af7dbeb1d/shrutiai-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6840eb0f85526922c7e00d189359c22108b01a972dcee3d9f8f215c47c13b73d",
                "md5": "1bf9e13b8ab2c077cc62cf47d2157b75",
                "sha256": "a84214898d2cbb66d33e0a5dd224db73ccb1785793957d25870d9092f25bb9b5"
            },
            "downloads": -1,
            "filename": "shrutiai-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "1bf9e13b8ab2c077cc62cf47d2157b75",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 13998,
            "upload_time": "2025-09-18T11:38:01",
            "upload_time_iso_8601": "2025-09-18T11:38:01.975743Z",
            "url": "https://files.pythonhosted.org/packages/68/40/eb0f85526922c7e00d189359c22108b01a972dcee3d9f8f215c47c13b73d/shrutiai-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-18 11:38:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "shrisai-tech",
    "github_project": "shruti-ai-sdk",
    "github_not_found": true,
    "lcname": "shrutiai"
}
        
Elapsed time: 5.05301s