1.0.2 โข Published 4 months ago
next-i18n-ai v1.0.2
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:
npm i next-i18n-ai
๐ Environment Variables
Create a .env
file in the project root and add:
API_KEY=your-gemini-api-key
Usage
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
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:
npm test
๐ Deployment
You can deploy this service on Vercel, Railway, or Fly.io:
Deploy with Docker
Create a
Dockerfile
:FROM node:18 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . CMD ["node", "src/index.js"]
Build & run:
docker build -t ai-translation . docker run -p 3000:3000 ai-translation
๐ License
This project is licensed under the MIT License. See the 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.