Wikipedie:GPT generátor komentářů k jazyku článku
Následující program v Pythonu 3 je založený na umělé inteligenci. Projde zadaný článek české Wikipedie (jeho jméno zapište přímo do programu, jde o "holý" program bez uživatelského rozhraní) a vypíše komentáře k jeho jazykové stránce. Berte je s rezervou, protože současná úroveň modelů není ještě dost jazykově zdatná, ale často se nejdou i užitečné komentáře.
Protože program přes API provolává model řady GPT, je potřeba mít na stránkách firmy OpenAI zakoupeno právo model takto používat (https://openai.com/api/).
import requests
from bs4 import BeautifulSoup
import re
from openai import OpenAI
client = OpenAI(api_key=my_api_key) # za my_api_key dosadit klíč od firmy OpenAI - lze ho zakoupit na jejich webu
# Vstupy:
page_title = "Československý pavilon na Světové výstavě 1967" # jméno článku v uvozovkách
def wiki_plain_text(article_name, language='cs'):
url = f"https://{language}.wikipedia.org/wiki/{article_name}"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
#for unwanted in soup(["table", "figure", "sup"]): # remove unwanted tag elements
# unwanted.extract()
paras = []
article_text = ''
pridej = True
for header in soup.find(id='mw-content-text').find_all(["h2", "h3", "h4", "p", "ul", "ol", "li"]):
headertext = re.sub(r'\[.*?\]', '', header.text.strip())
headertext = headertext.replace('\xa0', ' ')
delka = len(headertext)
if header.name == "p":
article_text += re.sub('\n', ' ', headertext) + "\n"
if delka > 50:
pridej = True
else:
if pridej:
paras.append(article_text)
article_text = headertext+'\n'
pridej = False
if pridej:
paras.append(article_text)
return paras
def korektor(text):
prompt = """
If there are language problems in the following Czech text, describe them.
Cite the word or words with the problem, then shortly descibe what is wrong and suggest a solution.
If the text is correct, write nothing. Do not comment the overal quality of the text:
"""
prompt = """
Pokud jsou v následujícím textu hrubé jazykové chyby nebo překlepy, popiš je a navrhni opravu.
Také upozorni na místa, kde sloh není v souladu s akademickým stylem psaní.
Vypiš jenom seznam chyb, nevypisuj opravené znění. Piš stručně a v bodech.
Pokud je text v pořádku, nepiš nic a nekomentuj ho:
"""
response = client.chat.completions.create(
model="gpt-4o",
max_tokens=1200,
messages=[
{
"role": "user",
"content": prompt + " " + text
},]
)
summary = ''
if response.choices[0].message.content is not None:
summary = response.choices[0].message.content
return summary
for t in wiki_plain_text(page_title):
print("\n\n"+t[:30]+"...")
print(korektor(t))