Files
muzak/playlist/tasks.py
T
mark 66e69bc23d Updates
Nu met 200% meer AI.
2024-02-08 00:09:59 +01:00

59 lines
1.3 KiB
Python

from celery import shared_task
from .models import Track
import dotenv
import os
import requests
import time
import json
from random import choice
dotenv.load_dotenv()
@shared_task
def get_banter(id):
track = Track.objects.get(pk=id)
r = requests.post(
os.getenv('AI_ENDPOINT'),
#'http://localhost:11434/api/generate',
json={
'model': os.getenv('AI_MODEL'),
'prompt': str(track)
},
stream=True
)
r.raise_for_status()
for line in r.iter_lines():
body = json.loads(line)
response_part = body.get('response', '')
# the response streams one token at a time, print that as we receive it
print(response_part, end='', flush=True)
track.banter += response_part
track.save()
if 'error' in body:
raise Exception(body['error'])
if body.get('done', False):
track.banter_done = True
track.save()
return body['context']
@shared_task
def get_banter_test(id):
letters = ["a","b","c","d","e","q","w", " "]
track = Track.objects.get(pk=id)
time.sleep(20)
track.banter = "Lorem "
track.save()
time.sleep(.5)
for i in range(100):
track.banter += choice(letters)
track.save()
time.sleep(.3)
track.banter_done = True
track.save()