May 17, 2026, 11:40 PM
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
import openai
|
||||
import requests
|
||||
|
||||
# Definiujemy klasę agenta do generowania artykułów na bloga
|
||||
class BlogArticleGenerator:
|
||||
def __init__(self, api_key):
|
||||
self.api_key = api_key
|
||||
openai.api_key = self.api_key
|
||||
|
||||
def generate_keywords(self, topic, number_of_keywords=10):
|
||||
prompt = f"Wygeneruj {number_of_keywords} słów kluczowych na temat: {topic}"
|
||||
response = openai.Completion.create(
|
||||
engine="davinci",
|
||||
prompt=prompt,
|
||||
max_tokens=50
|
||||
)
|
||||
keywords = response.choices[0].text.strip().split(', ')
|
||||
return keywords
|
||||
|
||||
def generate_article(self, topic, keywords, number_of_sections=3, max_words_per_section=200):
|
||||
outline_prompt = f"Utwórz konspekt artykułu na temat '{topic}', użyj słów kluczowych: {', '.join(keywords)}. Utwórz {number_of_sections} sekcje."
|
||||
outline_response = openai.Completion.create(
|
||||
engine="davinci",
|
||||
prompt=outline_prompt,
|
||||
max_tokens=150
|
||||
)
|
||||
outline = outline_response.choices[0].text.strip().split('\n')
|
||||
|
||||
article = f"# {topic}\n\n"
|
||||
for section in outline:
|
||||
discussion_prompt = f"Rozwiń punkt '{section}' artykułu na temat '{topic}', wprowadź szczegółowe informacje na ten temat, maksymalnie {max_words_per_section} słów."
|
||||
discussion_response = openai.Completion.create(
|
||||
engine="davinci",
|
||||
prompt=discussion_prompt,
|
||||
max_tokens=max_words_per_section
|
||||
)
|
||||
section_content = discussion_response.choices[0].text.strip()
|
||||
article += f"## {section}\n\n{section_content}\n\n"
|
||||
return article
|
||||
|
||||
def generate_image_description(self, topic):
|
||||
prompt = f"Opisz obraz, który najlepiej przedstawia artykuł o temacie: {topic}. Opis powinien być kreatywny i pasować do tematyki."
|
||||
response = openai.Completion.create(
|
||||
engine="davinci",
|
||||
prompt=prompt,
|
||||
max_tokens=50
|
||||
)
|
||||
return response.choices[0].text.strip()
|
||||
|
||||
# Przykład użycia agenta
|
||||
if __name__ == "__main__":
|
||||
api_key = "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"
|
||||
agent = BlogArticleGenerator(api_key)
|
||||
|
||||
# Parametry artykułu
|
||||
topic = "Bezpieczeństwo danych AI"
|
||||
number_of_keywords = 10
|
||||
number_of_sections = 3
|
||||
max_words_per_section = 150
|
||||
|
||||
# Generowanie słów kluczowych
|
||||
keywords = agent.generate_keywords(topic, number_of_keywords)
|
||||
print("Słowa kluczowe:", keywords)
|
||||
|
||||
# Generowanie artykułu
|
||||
article = agent.generate_article(topic, keywords, number_of_sections, max_words_per_section)
|
||||
print("\nArtykuł:\n", article)
|
||||
|
||||
# Generowanie opisu do obrazu
|
||||
image_description = agent.generate_image_description(topic)
|
||||
print("\nOpis obrazu:", image_description)
|
||||
Reference in New Issue
Block a user