import time
import serial
import openai

from openai import OpenAI

with open('.openai.key') as f:
    key = f.read().strip()

client = OpenAI(api_key=key)


def main():
    messages=[
        {"role": "developer",
         "content": "USE ONLY ASCII, BE BRIEF. YOU ARE TALKING TO A "
                    "USER USING A VIC-20 AND A 1200 BAUD CONNECTION FROM "
                    "1981 THROUGH A TIME WARP ANOMALY."}
        ]
    device = '/dev/ttyS0'
    ser = serial.Serial(device, baudrate=1200, timeout=3)
    print('STARTED')
    while True:
        line = ser.readline()
        if line:
            query = str(line, 'ascii')
            print(f'USER: {query}')
            if query.strip().lower() == 'quit':
                print('TERMINATING')
                ser.close()
                break
            messages.append({
                'role': 'user',
                'content': query})
            completion = client.chat.completions.create(
                    messages=messages,
                    model='gpt-4.1-nano')

            reply = completion.choices[0].message.content
            print(f'SYSTEM: {reply}')
            messages.append({
                'role': 'assistant',
                'content': reply})
            ser.write((reply + '\r\n').encode('ascii'))

if __name__ == '__main__':
    main()

