Unified interface for LLM, TTS, and STT providers
Project description
๐ง AI Services Modules
This repository provides a unified interface to interact with multiple Large Language Model (LLM) providers for tasks like:
- ๐ฌ Text Generation & Chat Completion
- ๐ฃ๏ธ Text-to-Speech (TTS)
- ๐ง Speech-to-Text (STT)
- ๐ Evaluation via prompt templates
๐ Features
- ๐ Unified API across major providers:
- LLM: OpenAI, Gemini, Groq, Anthropic
- TTS: OpenAI, GTTS, Gemini
- STT: OpenAI
- โ Easy integration of multiple providers
- ๐ฏ Evaluation prompt templates
๐ง Quick Start via GitHub (No Need to Clone)
You can install the package directly from GitHub using pip:
pip install git+https://github.com/guvi-research/guvi-ai-service.git
โ Steps to Use
- Create a new project folder and inside it, add a
.envfile with your API keys:
OPENAI_API_KEY=your_openai_key_here
GEMINI_API_KEY=your_gemini_key_here
GROQ_API_KEY=your_groq_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here
MONGODB_URI=your_mongo_uri_here
- Create a
test.pyfile like this:
from dotenv import load_dotenv
from ai_services.utils.mongo_logger import MongoEventLogger
from ai_services.client import LLMClient
from ai_services.provider_factory import get_provider
import os
load_dotenv()
# Setup logger
mongo_logger = MongoEventLogger(
db_uri=os.getenv("MONGODB_URI"),
db_name="AI_logs",
collection_name="chat_completion_logs"
)
# Messages for the model
messages = [
{"role": "system", "content": "You are a interview assistant."},
{"role": "user", "content": "give me a single tip for peace"}
]
# Get provider
provider = get_provider(
name="openai",
model="gpt-4.1-nano",
event_logger=mongo_logger
)
# Initialize client
client = LLMClient(provider)
response = client.chat(messages)
print("Response:", response)
- Run the file:
python test.py
๐ Supported Providers
| Task | Providers |
|---|---|
| Text Generation | OpenAI, Groq, Gemini, Anthropic |
| Text-to-Speech (TTS) | OpenAI, GTTS, Gemini |
| Speech-to-Text (STT) | OpenAI |
Use provider_type as:
llmโ for text generationttsโ for text-to-speechsttโ for speech-to-text
๐งพ MongoDB Event Logging (Optional)
This project supports logging API events (LLM, TTS, STT) into MongoDB for analytics, debugging, or auditing.
Mongo Log Structure:
Each interaction stores:
{
"timestamp": "2025-06-19T10:45:12Z",
"service_type": "TTS",
"module": "openai_provider",
"function": "generate_speech",
"request_data": { "text": "Hello world" },
"response_data": { "status": "audio_generated" },
"status": "success",
"error": null
}
.env Setup:
MONGODB_URI=mongodb+srv://<user>:<pass>@cluster.mongodb.net/
MongoDB Integration:
from utils.mongo_logger import MongoEventLogger
mongo_logger = MongoEventLogger(
db_uri=os.getenv("MONGODB_URI"),
db_name="AI_Interview",
collection_name="tts_logs"
)
tts_provider = get_provider(
name="openai",
provider_type="tts",
model="gpt-4o-mini-tts",
voice="alloy",
event_logger=mongo_logger
)
๐ How to Run by cloning the repo
HOW TO CLONE AI SERVICE REPO:
git clone "https://github.com/guvi-research/guvi-ai-service.git"
๐ Prerequisites
-
Python 3.8+
-
API Keys (store in
.envfile):OPENAI_API_KEY=your_openai_key_here GEMINI_API_KEY=your_gemini_key_here GROQ_API_KEY=your_groq_key_here ANTHROPIC_API_KEY=your_anthropic_key_here MONGODB_URI=your_uri_link_here
-
Install requirements:
pip install -r requirements.txt
1๏ธโฃ Text Generation (LLM)
File: examples/llm_usage.py
from llm_module.client import LLMClient
from llm_module.provider_factory import get_provider
uri = os.getenv("MONGODB_URI")
mongo_logger = MongoEventLogger(
db_uri=uri,
db_name = "AI_Services",
collection_name = "chat_completion_logs"
)
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is your role?"}
]
provider = get_provider(
name="gemini",
model="gemini-2.0-flash",
event_logger=mongo_logger
)
client = LLMClient(provider)
response = client.chat(messages)
print("Response:", response)
Run:
python examples/llm_usage.py
2๏ธโฃ Text-to-Speech (TTS)
File: examples/tts_usage.py
from tts_module.client import TTSClient
from tts_module.provider_factory import get_provider
uri = os.getenv("MONGODB_URI")
mongo_logger = MongoEventLogger(
db_uri=uri,
db_name = "AI_Services",
collection_name = "tts_logs"
)
tts_provider = get_provider("openai", provider_type="tts", model="gpt-4o-mini-tts", voice="alloy", event_logger=mongo_logger)
client = TTSClient(tts_provider)
client.speak("Hello, this is a text-to-speech test.")
Run:
python examples/tts_usage.py
3๏ธโฃ Speech-to-Text (STT)
File: examples/stt_usage.py
from stt_module.client import STTClient
from stt_module.provider_factory import get_provider
uri = os.getenv("MONGODB_URI")
mongo_logger = MongoEventLogger(
db_uri=uri,
db_name = "AI_Services",
collection_name = "stt_logs"
)
audio_path = "path/to/audio.mp3"
stt_provider = get_provider("openai", provider_type="stt", model="gpt-4o-mini-transcribe",event_logger=mongo_logger)
client = STTClient(stt_provider)
result = client.transcribe(audio_path)
print("Transcription:", result)
Run:
python examples/stt_usage.py
โ Notes
- Ensure
.envis set before running any script. - Choose the correct provider and model as required.
- All logs are automatically stored in MongoDB (if
event_loggeris passed).
guvi-ai-service-main
โโ ai_services
โ โโ base.py
โ โโ client.py
โ โโ config.py
โ โโ dependencies
โ โ โโ stt_common_functions.py
โ โ โโ tts_common_functions.py
โ โ โโ __init__.py
โ โโ logger.py
โ โโ prompts
โ โ โโ evaluation_prompt_generator.py
โ โ โโ __init__.py
โ โโ providers
โ โ โโ anthropic_provider.py
โ โ โโ gemini_provider.py
โ โ โโ groq_provider.py
โ โ โโ gtts_provider.py
โ โ โโ openai_provider.py
โ โ โโ __init__.py
โ โโ provider_factory.py
โ โโ utils
โ โ โโ error_handler.py
โ โ โโ input_validator.py
โ โ โโ mongo_logger.py
โ โ โโ __init__.py
โ โโ __init__.py
โโ examples
โ โโ llm_usage.py
โ โโ s3versioncontrollesson7.mp3
โ โโ stt_usage.py
โ โโ tts_usage.py
โโ pyproject.toml
โโ README.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_services_kit-0.1.2.tar.gz.
File metadata
- Download URL: ai_services_kit-0.1.2.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86a7eae65874b13addccc2a51048195fcdbb6cac2b67b46e09406e769e92571a
|
|
| MD5 |
31c770e53a693992d0d7d9dba1b587e0
|
|
| BLAKE2b-256 |
2b00f51a478ca43aabb88df9105b54a4d8ec0e1f8d68b4d6905e8f7e733608e6
|
File details
Details for the file ai_services_kit-0.1.2-py3-none-any.whl.
File metadata
- Download URL: ai_services_kit-0.1.2-py3-none-any.whl
- Upload date:
- Size: 23.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eddca2f08162d10f25cd1e1ee2c96684c28e59bd95effcb7903d61744500a0e6
|
|
| MD5 |
55d916611b44e6345ee59f7898ebf703
|
|
| BLAKE2b-256 |
8c8bbb38d4d053b0158e3db0ac9eae531ed2dafc62f16d504a6150cdb503fd16
|