W
File size: 2,440 Bytes
aab6c14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2d62d9e
 
8510d8c
 
 
aab6c14
6dcec7c
 
aab6c14
6dcec7c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import openai
import streamlit as st
from transformers import AutoTokenizer
import pandas as pd
import numpy as np

@st.cache(allow_output_mutation=True)
def get_model():
    tokenizer = AutoTokenizer.from_pretrained("gpt2")
    return tokenizer
    
tokenizer = get_model()

number_of_probs = st.slider("Length", 5, 99)
temp = st.slider('Temperature', 0.7, 5.0, 1.0)
tokens = st.slider('Length', 3, 25, 20)

def run_generate(bad_words):
  bad_words = bad_words.split()
  bad_word_ids = []
  for bad_word in bad_words: 
    bad_word = " " + bad_word
    ids = tokenizer(bad_word).input_ids
    ids = str(ids)
    ids = ids.replace("]", ": -30").replace("[", "").replace(", ", ":-30, ")
    bad_word_ids.append(ids)
  bad_word_ids = str(bad_word_ids)
  bad_word_ids = bad_word_ids.replace("['", "{").replace("']", "}").replace("'", "")
  bad_word_ids = bad_word_ids + ","
  print(bad_word_ids)
  return bad_word_ids
  
with st.form(key='my_form'):
  prompt = st.text_area(label='Enter sentence', value=" ")
  bad_words = st.text_area("Words You Do Not Want Generated", " core lemon height time ")
  key = st.text_area("Key", " core lemon height time ")
  openai.api_key = key
  bad_words = run_generate(bad_words)
  yes =eval(bad_words)
  bad_wordss = (yes[0])
  submit_button = st.form_submit_button(label='Submit')
  submit_button2 = st.form_submit_button(label='Submit Log Probs')
  if submit_button:
    response = openai.Completion.create(engine="code-davinci-002", prompt=prompt, temperature=temp, max_tokens=tokens, top_p=0.8, n=50,
    logit_bias = bad_wordss,)
    st.write(response)
  if submit_button2:
    response = openai.Completion.create(engine="code-davinci-002", prompt=prompt + " ", top_p=0.1, logprobs=number_of_probs, max_tokens=1, logit_bias = bad_wordss,)
    scores = pd.DataFrame([response["choices"][0]["logprobs"]["top_logprobs"][0]]).T
    scores.columns = ["logprob"]
    scores["%"] = scores["logprob"].apply(lambda x: 100*np.e**x)
    g = scores.sort_values(by="%", ascending=False)
    first_column = g.iloc[:, 0]
    okay = first_column.to_string()
    h = []
    for i in range(len(okay)):
      try:
        if okay[i] == "-":
          okay = okay[0:i] + okay[i+9:]
          h.append(okay)
      except:
        pass
    words2 = (h[-1])
    words = words2.split()
    st.write(words)
      
    #words2 = words2 + " "
    #print("---")
      #print(prompt + words2)
   #print("---")
   #st.write(words2)