https://github.com/mrcoder57/next-i18n-ai
https://github.com/mrcoder57/next-i18n-ai
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/mrcoder57/next-i18n-ai
- Owner: mrcoder57
- License: mit
- Created: 2025-02-16T10:08:23.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-16T10:45:47.000Z (over 1 year ago)
- Last Synced: 2025-02-16T11:21:28.021Z (over 1 year ago)
- Language: TypeScript
- Size: 10.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AI Translation API with Caching
## ๐ Overview
This project provides an AI-powered translation service using the **Gemini API** with **Upstash Redis** caching for optimized performance. It supports multiple language translations with caching to reduce redundant API requests.
## ๐ Features
- ๐ AI-powered language translation
- โก Upstash Redis caching to reduce API calls
- ๐ Secure API key usage with `.env` file
- ๐งช Jest tests for error handling
## ๐ฆ Installation
Clone the repository and install dependencies:
```sh
npm i next-i18n-ai
```
## ๐ Environment Variables
Create a `.env` file in the project root and add:
```env
API_KEY=your-gemini-api-key
```
## Usage
```javascript
const { AIClient } = require("next-i18n-ai");
const client = new AIClient({
apiKey: "your-api-key",
provider: "gemini",
});
async function main() {
const translatedText = await client.translate("Hello", "es");
console.log("Translated:", translatedText);
}
main().catch(console.error);
```
## Configuration
Ensure you have a valid API key and provider set up for the translations to work correctly.
### Run Example Translation
```sh
npx tsx ./examples/example.ts
```
## ๐ Project Structure
```
โโโ src
โ โโโ ai-client.ts # Main AIClient with API call & caching logic
โ โโโ index.ts # Export AIClient
โโโ examples
โ โโโ example.ts # Example usage
โโโ tests
โ โโโ ai-client.test.ts # Jest test cases
โโโ .env # Environment variables
โโโ LICENSE # MIT License
โโโ package.json # Project dependencies
โโโ README.md # Project documentation
```
## ๐งช Running Tests
Run unit tests using Jest:
```sh
npm test
```
## ๐ Deployment
You can deploy this service on **Vercel, Railway, or Fly.io**:
### Deploy with Docker
1. Create a `Dockerfile`:
```dockerfile
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "src/index.js"]
```
2. Build & run:
```sh
docker build -t ai-translation .
docker run -p 3000:3000 ai-translation
```
## ๐ License
This project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for more details.
## ๐ค Contributing
PRs are welcome! Open an issue for discussions or improvements.
## ๐ Contact
For any queries, reach out to [**Your Name**](mailto\:your-email@example.com).