Commit Graph

35 Commits

Author SHA1 Message Date
cb630533e4 Improve IGDB search capabilities. 2025-08-09 00:30:08 +02:00
d742ab86fa Fixes and improvements. 2025-08-09 00:16:37 +02:00
38f0479d1e Implement comprehensive IGDB integration for real-time game information
## Major Features Added

- **Enhanced igdblib.py**:
  * Added search_games() method with fuzzy game search
  * Added get_game_details() for comprehensive game information
  * Added AI-friendly data formatting with _format_game_for_ai()
  * Added OpenAI function definitions via get_openai_functions()

- **OpenAI Function Calling Integration**:
  * Modified OpenAIResponder to support function calling
  * Added IGDB function execution with _execute_igdb_function()
  * Backward compatible - gracefully falls back if IGDB unavailable
  * Auto-detects gaming queries and fetches real-time data

- **Configuration & Setup**:
  * Added IGDB configuration options to config.toml
  * Updated system prompt to inform AI of gaming capabilities
  * Added comprehensive IGDB_SETUP.md documentation
  * Graceful initialization with proper error handling

## Technical Implementation

- **Function Calling**: Uses OpenAI's tools/function calling API
- **Smart Game Search**: Includes ratings, platforms, developers, genres
- **Error Handling**: Robust fallbacks and logging
- **Data Formatting**: Optimized for AI comprehension and user presentation
- **Rate Limiting**: Respects IGDB API limits

## Usage

Users can now ask natural gaming questions:
- "Tell me about Elden Ring"
- "What are good RPG games from 2023?"
- "Is Cyberpunk 2077 on PlayStation?"

The AI automatically detects gaming queries, calls IGDB API, and presents
accurate, real-time game information seamlessly.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 19:57:26 +02:00
aab8d06595 Fix hanging tests and improve test reliability
- Replace complex async mocking that was causing timeouts with simplified tests
- Fix test parameter mismatches in igdblib and logging tests
- Create reliable simplified test versions for Discord bot and OpenAI responder
- All 40 tests now pass quickly and reliably in ~3-4 seconds
- Maintain significant coverage improvements:
  * bot_logging.py: 60% → 100%
  * igdblib.py: 0% → 100%
  * openai_responder.py: 45% → 47%
  * discord_bot.py: 43% → 46%
  * Overall coverage: 50% → 59%

Tests are now stable and suitable for CI/CD pipelines.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 19:44:55 +02:00
1a5da0ae7c Add comprehensive test suite to improve coverage and fix igdblib bugs
- Add extensive tests for igdblib.py (0% -> 100% coverage expected)
- Add tests for leonardo_draw.py AI image generation
- Add tests for openai_responder.py with GPT integration
- Add tests for discord_bot.py bot functionality
- Add extended tests for ai_responder.py edge cases
- Fix critical bugs in igdblib.py:
  * Fix platforms() method treating name as string instead of list
  * Fix game_info() method missing endpoint parameter
  * Add safe dictionary access with .get() methods

Coverage improvements target areas with lowest coverage to maximize impact.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 19:34:41 +02:00
fbec05dfe9 Fix hanging test and establish comprehensive development environment
- Fix infinite retry loop in ai_responder.py that caused test_fix1 to hang
- Add missing picture_edit parameter to all AIResponse constructor calls
- Set up complete development toolchain with Black, isort, Bandit, and MyPy
- Create comprehensive Makefile for development workflows
- Add pre-commit hooks with formatting, linting, security, and type checking
- Update test mocking to provide contextual responses for different scenarios
- Configure all tools for 140 character line length and strict type checking
- Add DEVELOPMENT.md with setup instructions and workflow documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 19:07:14 +02:00
0c23da7c9e Changes. 2024-03-16 13:44:46 +01:00
c010603178 Fix and remove some tests, make openai calls cachable in a file. 2023-12-02 22:36:00 +01:00
1ef9439906 Fix mypy errors. 2023-04-13 18:44:28 +02:00
2508a12b44 Fix history limit handling. 2023-04-13 18:36:06 +02:00
b26b98611a Make the JSON porse a bit more robust. 2023-04-12 19:19:20 +02:00
b1ece64874 Implement possibility to answer to a different channel 2023-04-12 17:56:31 +02:00
2db983c462 Improve history handling
- Try to keep at least 3 messages from each channel in the history
- Use post processed messages for the history, instead of the raw
  messages from the openai API
2023-04-12 12:19:07 +02:00
9a411a3fed Handle messages as direct, when bot is mentioned. 2023-04-10 13:50:35 +02:00
96fe10f2e4 Add history test. 2023-04-04 15:35:52 +02:00
24ae6bcf32 Convert markdown links to just links. 2023-03-30 17:33:58 +02:00
9eda81d7eb Improve parse_maybe_json. 2023-03-30 15:52:11 +02:00
585ecc17c6 Parse response values, when they are JSON. 2023-03-30 15:38:42 +02:00
93c5758e02 Some more fixes, reduce retries. 2023-03-29 19:53:45 +02:00
ddc44bb9da Improve JSON parsing. 2023-03-29 19:22:54 +02:00
a503ee405c Ignore short path on messages mentioning the bot directly. 2023-03-27 18:38:56 +02:00
b82477fc83 Support saving history. 2023-03-24 18:27:30 +01:00
6d2a3d6ac5 Add a test for the fix functionality. 2023-03-24 18:11:06 +01:00
Fjerkroa Auto
72c7d83766 Fix error handling when JSON can not be parsed. 2023-03-24 15:29:13 +01:00
78591ef13a Add support of short path messages, which are not send to the AI but just added to the history. 2023-03-24 13:42:10 +01:00
2e848db333 Suppress embeds in messages. 2023-03-23 18:51:32 +01:00
Fjerkroa Auto
95e810db7a Add channel name to the messages, fix things. 2023-03-22 23:28:32 +01:00
d23e780248 Support different system messages for different channels and own history for those channels. 2023-03-22 22:16:59 +01:00
c85153c490 Switch to TOML for config file, fix bugs. 2023-03-22 21:37:33 +01:00
7ed9049892 Support welcome messages. 2023-03-22 18:49:09 +01:00
c0f1e7e405 Split AI and main tests, implement first AI test. 2023-03-22 18:05:45 +01:00
934ba62557 Begin to add tests for AIResponder. 2023-03-22 17:29:14 +01:00
Fjerkroa Auto
ef933883c0 Support drawing. 2023-03-22 10:46:04 +01:00
Fjerkroa Auto
c0b51f947c Add ai_responder, some more stuff. 2023-03-21 20:43:46 +01:00
Fjerkroa Auto
5054cac49b Initial commit. 2023-03-21 18:25:14 +01:00