Files
cyclop/chatgpt_telegram_inference_bot.py
T

45 lines
1.7 KiB
Python
Raw Normal View History

2024-08-19 10:24:17 -05:00
import os
import logging
2024-08-19 10:36:03 -05:00
from openai import OpenAI
from openai_compatible_inference_bot import OpenAICompatibleInferenceBot
from telegram_helper import TelegramHelper
2024-08-19 10:24:17 -05:00
class ChatGPTTelegramInferenceBot(OpenAICompatibleInferenceBot):
def __init__(self):
super().__init__()
2025-06-02 13:23:02 -05:00
self.client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
self._configure_model_and_tokens(
os.environ.get("OPENAI_SMALL_MODEL", "gpt-3.5-turbo"),
os.environ.get("OPENAI_SMALL_MODEL_MAX_TOKENS")
2025-06-02 13:23:02 -05:00
)
async def switch_model(self):
current_small_model = os.environ.get("OPENAI_SMALL_MODEL", "gpt-3.5-turbo")
current_large_model = os.environ.get("OPENAI_LARGE_MODEL", "gpt-4")
2025-06-02 13:23:02 -05:00
if self.model == current_large_model or self.model != current_small_model:
2025-06-02 13:23:02 -05:00
target_model = current_small_model
target_max_tokens = os.environ.get("OPENAI_SMALL_MODEL_MAX_TOKENS")
else:
target_model = current_large_model
target_max_tokens = os.environ.get("OPENAI_LARGE_MODEL_MAX_TOKENS")
2025-06-02 13:23:02 -05:00
self._configure_model_and_tokens(target_model, target_max_tokens)
logging.info(f"Switched to model: {self.model}")
return f"Switched to model: {self.model}"
def main():
2025-06-02 13:23:02 -05:00
if not os.environ.get("OPENAI_API_KEY"):
logging.error("FATAL: OPENAI_API_KEY environment variable not set.")
return
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
bot = ChatGPTTelegramInferenceBot()
2025-06-02 13:23:02 -05:00
telegram_helper = TelegramHelper(bot)
telegram_helper.run()
2024-08-19 10:24:17 -05:00
if __name__ == '__main__':
main()