|
import openai |
|
import os |
|
|
|
openai.api_key = os.getenv("OPENAI_API_KEY") |
|
|
|
def prompt_gpt_completion(input): |
|
print("TODO") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
save_data_to_txt(prompts, 'prompts.txt') |
|
|
|
|
|
|
|
|