74 Commits

Author SHA1 Message Date
f1d08908c3
Applying previous commit. 2025-06-07 06:04:39 +00:00
0ef8ee8cc0
Updates Gemini Pro model version
Updates the Gemini 2.5 Pro model from `gemini-2.5-pro-preview-05-06` to `gemini-2.5-pro-preview-06-05` across configurations.
This ensures the use of the more recent preview version of the model.
2025-06-06 21:13:57 -06:00
d1ec42fa51
big ass formatting 2025-06-05 21:31:06 -06:00
63b82bad2c
feat: Add moderator role configuration and authorization check for timeout user functionality 2025-05-30 23:06:20 -06:00
36f3f80487
feat: Implement dedicated voice text channel functionality and logging for voice interactions 2025-05-30 22:34:27 -06:00
db64d0e790
feat: Add Google Cloud TTS provider
Introduces a new TTS provider using Google Cloud Text-to-Speech (Chirp HD model). This allows for higher quality and more natural-sounding voice synthesis.

The `TTSProviderCog` now includes:
- A `google_cloud_tts` option in the `_synthesize_speech` method.
- Checks for the `google-cloud-texttospeech` library and provides installation instructions if missing.
- Error handling for common Google Cloud TTS issues like quota limits or credential problems.
- A new choice in the `/ttsprovider` slash command for "Google Cloud TTS (Chirp HD)".
- A check for the availability of the `google.cloud.texttospeech` module on startup.
2025-05-30 21:25:01 -06:00
c374a1a835
fix: Handle missing AVAILABLE_AI_MODELS import and provide fallback options 2025-05-30 13:18:57 -06:00
e6f03abf6d
feat: Add dynamic AI model switching commands and update model configuration 2025-05-30 13:08:23 -06:00
4d84ee7f6f
fix: Adjust proactive engagement thresholds and personality settings for improved bot interaction 2025-05-29 14:47:51 -06:00
fd13c35afd
feat: Use specific model for emoji/sticker descriptions
Introduces `EMOJI_STICKER_DESCRIPTION_MODEL` to `config.py` and uses it in `generate_image_description` for "emoji" and "sticker" item types. This ensures a dedicated model is used for these specific image description tasks, improving accuracy or efficiency.
2025-05-29 11:41:36 -06:00
dddabd0b42
fix: Adjust baseline personality configuration for chattiness and patience levels 2025-05-29 10:38:37 -06:00
02f2117acc
fix: Adjust chattiness level in baseline personality configuration 2025-05-28 23:56:52 -06:00
cec4c6c60b
feat: Add list_files_tool for directory listing with optional recursion 2025-05-28 15:52:04 -06:00
06269e6eec
feat: Implement bot response rate limiting in listeners 2025-05-28 15:42:36 -06:00
563d7319db
Add send_tenor_gif tool with AI selection and update GIF search limits
Introduce send_tenor_gif tool that uses AI to select the best GIF from Tenor search results and send it to the channel. Increase the default and maximum limits for Tenor GIF search tools to improve selection quality. Update parameter descriptions and validation accordingly.
2025-05-28 15:09:02 -06:00
0c4df8d94d
feat: Implement Tenor GIF search tool and remove deprecated request handling 2025-05-28 14:40:56 -06:00
6868b2e95e
Feat: Integrate Tenor GIF search and custom emoji/sticker support
This commit introduces two main enhancements to Gurt's capabilities:

1.  **Tenor GIF Integration:**
    *   The AI can now request Tenor GIFs via a `request_tenor_gif_query` field in its response schema.
    *   `api.py` handles these requests by searching Tenor (using the new `TENOR_API_KEY` from config) and appending the GIF URL to the AI's message content.
    *   System prompts have been updated to instruct the AI on how to request GIFs.

2.  **Custom Emoji & Sticker Learning and Usage:**
    *   Introduces an `EmojiManager` (in the new `gurt/emojis.py`) to store and manage mappings of custom emoji/sticker names to their URLs. This data is persisted to `EMOJI_STORAGE_FILE`.
    *   Gurt now automatically learns custom emojis and stickers (and their URLs) from user messages via the `on_message` listener in `listeners.py`.
    *   The AI can be prompted to use these learned emojis/stickers by referencing their `:name:`.
    *   `api.py` processes AI responses to identify known custom emojis/stickers. For stickers, their URL is appended to the content if mentioned.
    *   A `learnemoji` command has been added for manually teaching Gurt emojis/stickers, although automatic learning is the primary mechanism.
    *   System prompts are updated to guide the AI on using custom emojis/stickers.
2025-05-28 14:30:26 -06:00
cde506052f
feat: Add tools for user avatar data and role color
Introduces `get_user_avatar_data` to retrieve a user's avatar as base64 encoded image data, allowing the AI to "see" the profile picture directly. This includes special handling in `process_requested_tools` to attach the image as a `types.Part` in the prompt.

Also adds `get_user_highest_role_color` to fetch the color and details of a user's highest-positioned role.
2025-05-28 08:44:35 -06:00
e8eaff4b9a
Refactor: Clarify User ID usage and enhance author attribution
This commit improves user identification in two key areas:

1.  **AI Response Context:**
    In `gurt/api.py`, messages processed by the AI now include a more informative author string, combining the user's display name and username (e.g., "DisplayName (Username: actual_username)"). This provides richer context about message authors.

2.  **Tool Definitions:**
    Descriptions for tools in `gurt/config.py` and `gurt/prompt.py` (e.g., `search_user_messages`, `get_user_facts`) and their parameters have been updated to explicitly state that user identification relies on "User ID". This enhances clarity for the AI model and developers.
2025-05-27 22:48:15 -06:00
3ff850a9b3
feat: Add channel ignore functionality
Implement `/gurtignore` commands to manage channels Gurt should ignore.
- Add `gurtignore add` to add a channel to the ignore list.
- Add `gurtignore remove` to remove a channel from the ignore list.
- Add `gurtignore list` to display currently ignored channels.
- Update `GurtCog` and `config.py` to support ignored channel IDs and file management.
- Ensure ignore commands are owner-only.
- Modify `listeners.py` to prevent Gurt from processing messages in ignored channels.
2025-05-27 22:19:36 -06:00
542be94a0f
fix: Update model configuration to use the latest version of Gemini 2025-05-27 17:08:06 -06:00
4012ab9e9d
dkkk 2025-04-30 22:32:13 -06:00
ae54167cc4
aa 2025-04-30 13:50:21 -06:00
2673729888
aa 2025-04-30 12:37:05 -06:00
c40a364558
aa 2025-04-30 11:33:44 -06:00
4516bc910e
aa 2025-04-30 11:27:57 -06:00
d2a8e29efc
aaaa 2025-04-30 11:09:56 -06:00
10b0f8bafa
a 2025-04-30 11:09:35 -06:00
c737c0136c
aaaa 2025-04-30 11:07:46 -06:00
8ed6189642
aaaa 2025-04-30 10:57:06 -06:00
990f4dd8e3
aa 2025-04-30 10:45:24 -06:00
4b8a6a9c9a
aaa 2025-04-30 10:37:44 -06:00
262cebe7c6
rfrf 2025-04-30 10:36:46 -06:00
5cad3d181b
aa 2025-04-30 10:31:05 -06:00
5b656cc811
aa 2025-04-30 10:00:01 -06:00
1605de35ab
aa 2025-04-30 09:39:36 -06:00
Slipstream
58a80cd06e
Update config.py 2025-04-30 08:40:06 -06:00
Slipstream
4e524c7ead
Update config.py 2025-04-30 07:58:31 -06:00
46138a8823
aaa 2025-04-30 00:10:22 -06:00
c1485f5dd1
aa 2025-04-29 19:38:06 -06:00
34ff5d4997
aa 2025-04-29 19:35:46 -06:00
7cc0065039
aa 2025-04-29 19:17:26 -06:00
8050bc1c01
aa 2025-04-29 17:59:35 -06:00
3a556d2cfe
fue 2025-04-29 17:58:37 -06:00
95adc4d847
aafaf 2025-04-29 17:44:33 -06:00
d45a90b18e
aa 2025-04-29 17:42:29 -06:00
51a39320b7
aa 2025-04-29 17:24:00 -06:00
677ed86892
a 2025-04-29 17:15:48 -06:00
5ee063f6d2
aa 2025-04-29 16:16:11 -06:00
287b02d015
aa 2025-04-29 15:47:52 -06:00