Enterprise-grade ChatGPT API integration with conversation management, caching, and monitoring built with .NET 8
IntelliBot API is a production-ready .NET 8 Web API for integrating OpenAI's ChatGPT into your applications. It provides advanced features like conversation memory, Redis caching, rate limiting, and real-time streaming for building intelligent chatbot applications and AI-powered solutions.
🔥 Perfect for: Chat applications, AI assistants, customer support bots, and enterprise AI solutions
- Multi-Model Support: GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4o
- Conversation Management: Persistent chat history with context awareness
- Streaming Responses: Real-time token streaming for better UX
- Smart Caching: Redis-powered response caching to reduce API costs
- Rate Limiting: Configurable request throttling per user/IP
- Resilience Patterns: Polly retry policies and circuit breakers
- Structured Logging: Serilog with JSON formatting for observability
- API Documentation: Auto-generated Swagger/OpenAPI with examples
- Validation: FluentValidation for robust request validation
- Usage Statistics: Token tracking and cost estimation
- Performance Metrics: Response times and error rate monitoring
- Health Checks: Comprehensive service health monitoring
| Category | Technologies | 
|---|---|
| Backend | .NET 8, ASP.NET Core, Entity Framework Core | 
| Database | PostgreSQL, Redis | 
| AI/ML | OpenAI API, ChatGPT Integration | 
| DevOps | Docker, Serilog, Polly, FluentValidation | 
| API | RESTful, Swagger/OpenAPI, AutoMapper | 
IntelliBotAPI/
├── 🎯 IntelliBot.API/                 # Controllers, DTOs, Configuration
├── 🧠 IntelliBot.Application/         # Services, Validators, Business Logic
├── 💾 IntelliBot.Infrastructure/      # Repositories, External APIs, Caching
├── 📦 IntelliBot.Core/               # Entities, Interfaces, Enums
└── 🔧 IntelliBot.Shared/             # Utilities, Extensions, Constants
- .NET 8 SDK
- PostgreSQL 14+
- Redis 6+
- OpenAI API Key
- Clone and setup
git clone https://github.com/yourusername/IntelliBotAPI.git
cd IntelliBotAPI/src/IntelliBot.API- Configure environment
Update appsettings.Development.json:
{
  "OpenAI": {
    "ApiKey": "your-openai-api-key",
    "DefaultModel": "gpt-3.5-turbo"
  },
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Database=IntelliBot;Username=postgres;Password=yourpassword",
    "Redis": "localhost:6379"
  }
}- Run database migrations
dotnet ef database update- Run the application
dotnet run- API: https://localhost:7131
- Swagger UI: https://localhost:7131/swagger
- Health Check: https://localhost:7131/health
| Method | Endpoint | Description | 
|---|---|---|
| POST | /api/chat/message | Send chat message | 
| POST | /api/chat/message/stream | Stream chat response | 
| GET | /api/chat/conversations | List conversations | 
| GET | /api/chat/conversations/{id} | Get conversation | 
| POST | /api/chat/conversations | Create conversation | 
| DELETE | /api/chat/conversations/{id} | Delete conversation | 
| GET | /api/chat/models | Get available AI models | 
| GET | /api/chat/usage | Get usage statistics | 
curl -X POST "https://localhost:7131/api/chat/message" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Explain quantum computing in simple terms",
    "model": 1,
    "temperature": 0.7
  }'docker-compose up -d| Variable | Description | Default | 
|---|---|---|
| OpenAI__ApiKey | OpenAI API Key | Required | 
| OpenAI__DefaultModel | Default AI model | gpt-3.5-turbo | 
| ConnectionStrings__DefaultConnection | PostgreSQL connection | Required | 
| ConnectionStrings__Redis | Redis connection | localhost:6379 | 
| Serilog__MinimumLevel | Logging level | Information | 
Configure in appsettings.json:
{
  "RateLimiting": {
    "RequestsPerMinute": 10,
    "RequestsPerHour": 100,
    "RequestsPerDay": 1000
  }
}dotnet builddotnet test- EditorConfig for consistent code style
- XML Documentation for public APIs
- Async/Await pattern throughout
{
  "Timestamp": "2025-10-18T12:00:00Z",
  "Level": "Information",
  "Message": "Chat request processed",
  "Properties": {
    "ProcessingTimeMs": 1250,
    "TokensUsed": 150,
    "Model": "gpt-3.5-turbo",
    "ConversationId": "conv-123"
  }
}- Overall health: GET /health
- Database health: GET /health/ready
- External services: GET /health/live
- Fork the repository
- Create a feature branch (git checkout -b feature/amazing-feature)
- Commit changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
See our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for the ChatGPT API
- .NET Team for the excellent framework
- All contributors and users of this project
If you find this project helpful, please give it a ⭐