2025-02-10 20:29:57 -05:00
#!/usr/bin/env python3.12
import os
import asyncio
from typing import Optional
from openai import AsyncOpenAI
class GPT :
def __init__ ( self , constants ) :
self . constants = constants
self . api_key = self . constants . OPENAI_API_KEY
self . client = AsyncOpenAI (
api_key = self . api_key ,
timeout = 10.0 ,
)
2025-02-11 11:19:52 -05:00
self . default_system_prompt = " You are a helpful assistant who will provide only totally accurate tidbits of info on the specific songs the user may listen to. "
2025-02-10 20:29:57 -05:00
async def get_completion ( self , prompt : str , system_prompt : Optional [ str ] = None ) - > None :
if not system_prompt :
system_prompt = self . default_system_prompt
chat_completion = await self . client . chat . completions . create (
messages = [
{
" role " : " system " ,
" content " : system_prompt ,
} ,
{
" role " : " user " ,
" content " : prompt ,
}
] ,
model = " gpt-4o-mini " ,
2025-02-11 11:19:52 -05:00
temperature = 0.35 ,
2025-02-10 20:29:57 -05:00
)
return chat_completion . choices [ 0 ] . message . content