DnD / app.py
Ceetar's picture
sorta working now
e338f7b
raw
history blame
1.97 kB
import gradio as gr
import openai
import os
import random
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
openai.api_key = os.getenv('OPENAI_API_KEY')
print(openai.api_key)
print (os.environ.get("OPENAI_API_KEY"))
client = openai.OpenAI(organization='org-eiNl8e4nk93VLQFDb4EBz9JG')
#openai.api_key = os.environ['openai'] #for huggingface i think
#generates an AI description of your character
def describe(names,wis,char,str,int,dex,con):
print(f"hi{names}")
completion = client.completions.create(
model='gpt-3.5-turbo-instruct',
prompt=names,
max_tokens=310,
temperature=0.77,
frequency_penalty=0.2,
presence_penalty= 0.25)
result =completion.choices[0].text
#print(dict(completion).get('usage'))
#print(completion.model_dump_json(indent=2))
if not result :
result = "Could you be any more boring?"
return result
iface = gr.Interface(fn=describe, inputs=[gr.Textbox(label="Your DND character",show_label=True),
gr.Number(label="Wisdom",show_label=True),
gr.Number(label="Charisma",show_label=True),
gr.Number(label="Strength",show_label=True),
gr.Number(label="Intelligence",show_label=True),
gr.Number(label="Dexterity",show_label=True),
gr.Number(label="Constitution",show_label=True)],
outputs=gr.Textbox(label="The character",show_label=True))
iface.launch()
def stat(n_dice, dice_rank):
results = [ # Generate n_dice numbers between [1,dice_rank]
random.randint(1, dice_rank)
for n
in range(n_dice)
]
lowest = min(results) # Find the lowest roll among the results
results.remove(lowest) # Remove the first instance of that lowest roll
return sum(results) # Return the sum of the remaining results.