Spaces:
Sleeping
Sleeping
import openai | |
import os | |
openai.api_key = os.getenv("OPENAI_API_KEY") | |
def prompt_gpt_completion(input): | |
print("TODO") | |
# temperature = 0-1 -> controls randomness. 0 -> repetitive, deterministic 1-> random | |
# max_tokens = up to 2048 (or 4k shared between prompt and completion). One token is around 4 characters in English. | |
# top_p = controls diversity by nucleus sampling. If set to 0.5 only half of all likelihood-weighted options are considered | |
# frequency_penalty = penalize using frequently used words in the text generated so far | |
# presence_penalty = penalize using words already used in generated text | |
def prompt_gpt_asr_prompts(lang_code, domain, nr_of_prompts): | |
print(f"Generating {nr_of_prompts} prompts for lang_code: {lang_code} and domain: {domain}") | |
if(lang_code == "pl"): | |
prompt = f"""Jesteś lingwistą tworzącym zdania do korpusu nagrań mowy. Zdania, które tworzysz są poprawne językowo, zróżnicowane semantycznie oraz zbilansowane fonetycznie.\n | |
Twoim zadaniem jest napisanie okreśłonej liczby zdań przez użytkownika. | |
Zdania dot. określonej domeny/zagadnienia przez użytkownika. | |
Zdania mają postać pytań i odpowiedzi o wzrastającym poziomie trudności. | |
Pierwsze zdania dotyczą ogólnych zagadnień, kolejne stopniowo coraz trudniejszych. | |
Przykład: | |
Input: Wygeneruj 7 zdań dla domeny "brydż sportowy". | |
Output: | |
Q1: Co to jest brydż sportowy? | |
A1: To logiczna gra karciana, w której bierze udział czterech graczy tworzących dwie rywalizujące ze sobą pary. | |
Q2: Czy brydż to sport? | |
A2: Tak, brydż został oficjalnie przyjęty do Międzynarodowego Komitetu Olimpijskiego jako pełnoprawna dyscyplina sportowa. | |
Q3: Czy warto grać w brydża? | |
A3: Tak, 20 lat temu prof. Marian Cleeves Diamond wykazała, że gra w brydża zmniejsza ryzyko zachorowania na chorobę Alzheimera aż o 75 proc. Inne badania naukowe wykazały, że gra w brydża przynosi wymierne korzyści dla sprawności umysłowej i zdrowia mózgu u seniorów. | |
Q4: Co decyduje o sukcesie w brydżu? | |
A4: Umiejętności oraz sprawność umysłowa, a nie przypadek czy psychologiczne rozegranie przeciwnika jak w pokerze. | |
Q5: Jakie znane osoby grają w brydża? | |
A5: Bill Gates, Warren Buffett, Witold Bielecki, Renata Dancewicz, Zbigniew Boniek, Katarzyna Grochola | |
Q6: Jaki jest cel gry? | |
A6: Wygranie jak największej liczby lew. | |
Q7: Co to jest lewa? | |
A7: To cztery karty, umieszczone na stoliku zgodnie z ruchem wskazówek zegara. Lewę wygrywa gracz, którego karta miała najwyższą wartość. Gracz, który zdobył lewę zaczyna następna turę, czyli rzuca kartę jako pierwszy. | |
Wygeneruj {nr_of_prompts} zdań dla \"{domain}\" wedle wskazanego wzorca""" | |
elif(lang_code == "en"): | |
prompt = "" | |
else: | |
print("unknown language!") | |
return | |
response = openai.Completion.create( | |
model="text-davinci-003", | |
prompt=prompt, | |
temperature=0.3, | |
max_tokens=2048, | |
top_p=1, | |
frequency_penalty=0.5, | |
presence_penalty=0, | |
stop=["You:"] | |
) | |
return(response) | |
def save_data_to_txt(data, file_path): | |
with open(file_path, 'w') as file: | |
file.write(data) | |
print(f"The data has been saved to {file_path} successfully.") | |
lang_code = "pl" | |
domain = "nauka gry w brydża sportowego dla początkujących" | |
nr_of_prompts = 5 | |
response=prompt_gpt_asr_prompts(lang_code, domain, nr_of_prompts) | |
prompts = response.choices[0].text | |
# Example usage | |
save_data_to_txt(prompts, 'prompts.txt') | |