Plugini, skripte i ostalo (kreirano sa AI) korisni i besplatni toolovi

U prilogu su slike generirane s dalle3 unutar py skripte, kao i dio teksta na HR. Sigurno bi se dalo dobiti i bolji rezultat, no s obzirom na generički naslov ovo mi se čini i više nego dobro.


1 Like

Ova tema totalno otišla u offtopic :smile:

Ovo je jako ocigledno AI generisano. Nemoj me pogresno shvatiti, moze se izvuci nesto i na ovaj nacin, ali zaista mi nije OK kvaliteta. Mislim da je dosta bolje koristiti besplatne stock APIje

@Goci kako offtopic :smiley: - pa ubacivanjem slika (kakve god da su) se kvaliteta (AI generisanog ili ne) clanka znacajno poboljsava

2 Likeova

Ja sam si danas radio u Pythonu automatski generator slika. Funkcionira na način da u .csv datoteku učitam tekst koji treba ići na slike i nazive slika koje treba staviti, i onda on pravi slike na osnovu toga.

U bazu sam ubacio raznih slika koje random koristi, isto sam napravio i za fontove, te sam mijenja boje fontova tako da je non-stop nešto drugačije.

Meni za onaj moj novi AI projekt ovo zvuči odlično jer s obzirom da još nema pomaka, ovako ću barem za 10 minuta moći ispucati slika za 10-15 dana.

Vjerojatno se tu može dodati još dosta nekih postavki ali meni je ovo za sada okej.

Čak sam razmišljao na fiverr staviti da pravim slike za pinterest za 10c po slici ili tako nešto. Jedino što bi mi uzelo vremena je to dok napravim bazu slika za svaku nišu. Ali mislim da je 100-injak slika više nego dosta pa kad ih vrti u kombinaciji sa različitim fontovima različitih boja, mislim da je to više nego okej.

Ako koga zanima skripta i uputsva, šaljem.

5 Likeova

jel to da generise slike ili i slike uzima odnekle?

Nene, napravio sam bazu slika koje sam sam preuzeo s interneta. Ovo je više da ti brzinski kreira slike za Pinterest, Facebook, ili za što već. Tj. za umetanje teksta i logoa na slike.

Super ideja - posto su svakako za background slike ovdje bi i dall-e-ove mogle posluziti. Mozda i da ubacis pexels ili pixabay api?

Pa evo ovo sam napravio najosnovnije moguće, vidjet ćemo. Sad sam si čak uplatio OpenAI api da se igram malo sa generiranjem članaka ako uspijem napraviti programčić za to haha.

@anja1 zeznuo si me sad nisam ovo uopće trebao počinjati sad ću sve drugo zapustiti haha.

Igram se upravo sa generiranjem ai članaka kroz python i openai, i upravo napravio program, zadam mu da napiše članak na temu Kako voziti auto s manualnim mjenjačem, i izbaci mi članak od skoro 15k riječi hahaha… Objasnio mjenjače uzduž i popreko… mislim da ću odustat nego eto žao mi ne potrošiti 20$ što sam uplatio u API…

Baš je komplicirano jer se mijenjao nešto openai API, tj. komande za njih a ChaatGPT uporno koristi ove stare pa stalno dobivam errore.

ne pise clanak iz jednog API calla? Ajd boga ti, sharuj tu skriptu

Ma piše da ali se zbog toga užasno duplira, otale ovih 15k riječi, iako je svakako otišao preširoko što se tiče teme.

upravo se s tim i borim pokušavam izvući da prati što je do sada napisao ali da za svaku sekciju radi zaseban call, jer tako i sam pišem članke putem chatgpt-a, pa mislim da i ovdje mogu dobiti bolji output. ali evo neće me.

@simeon Ja sam ti totalni newb, ali evo ovako to izgleda kod mene. I dalje je to jako loše ali ovo je najbolje što sam do sada uspio. Sad izbacuje normalnije članke oko 2000-2500 riječi, ali lako se to podesi povećavanjem tokena.

Imam tri dokumenta:

  • main.py
  • research.py
  • writing.py

MAIN.PY:

import os
from docx import Document
from research import get_competitor_subheadings
from writing import generate_content_with_style
from openai import OpenAI

# Initialize the OpenAI client
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def main():
    # Input topic for the article
    topic = input("Enter the topic for the article: ")

    # Step 1: Generate subheadings based on competitor research, add a final summary section
    subheadings = ["Introduction"] + get_competitor_subheadings(client, topic) + ["Summary"]
    print("Generated subheadings:", subheadings)

    # Step 2: Initialize the document
    doc = Document()
    doc.add_heading(topic, level=1)

    # Step 3: Generate content for each subheading
    previous_subheading = None  # No previous section for the first subheading
    for subheading in subheadings:
        section_content = generate_content_with_style(client, topic, subheading, previous_subheading)
        previous_subheading = subheading  # Update context to the current subheading for continuity
        doc.add_heading(subheading, level=2)
        doc.add_paragraph(section_content)

    # Step 4: Save the article
    doc.save(f"{topic}_article.docx")
    print(f"Article saved as '{topic}_article.docx'.")

if __name__ == "__main__":
    main()

RESEARCH.PY

from openai import OpenAI

def get_competitor_subheadings(client, topic):
    # Refined prompt to focus exclusively on generating subheadings without additional commentary
    prompt = (f"Generate a concise list of subheadings that match the search intent for an article on '{topic}'. "
              f"Each subheading should address common questions about the topic and be directly relevant. "
              f"Provide only the list of subheadings without any introductory or explanatory text.")
    
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}],
        max_completion_tokens=200
    )
    
    subheadings_text = response.choices[0].message.content.strip()
    subheadings = [line.strip("- ") for line in subheadings_text.split("\n") if line.strip()]
    return subheadings

WRITING.PY

from openai import OpenAI

def generate_content_with_style(client, topic, subheading, previous_subheading=None):
    # Determine if the current section is the introduction or summary
    is_summary = subheading.lower() == "summary"
    is_intro = subheading.lower() == "introduction"
    
    # Define the prompt for content generation
    if is_intro:
        prompt = (f"Write a very short, straightforward introduction for an article on '{topic}'. "
                  f"Directly address the reader’s problem or curiosity about this topic, make a strong hook, and "
                  f"promise that this article will provide a solution or answer. Keep language simple, limit paragraphs to 2 sentences, "
                  f"and avoid any creative flourishes or imaginative language.")
    elif is_summary:
        prompt = (f"Summarize the key points from the article on '{topic}' in this final section. "
                  f"Provide a clear recap without adding new information, and keep language simple.")
    else:
        prompt = (f"Write a detailed and direct section for an article on '{topic}' with the subheading '{subheading}'. "
                  f"Do not repeat the subheading within the content. Focus only on the main points, avoid summaries or conclusions, "
                  f"keep language simple, and limit paragraphs to no more than 2 sentences. If providing a list, format it as bullet points "
                  f"with each item starting with '-'.")
    
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}],
        max_completion_tokens=300  # Adjust for length control
    )
    
    section_content = response.choices[0].message.content.strip()
    return section_content

p.s. nemoj stavljati ? ili ! za time članka inače ga neće htjeti spremiti, nisam see toga još hvatao.

ok on i principu ovako radi:

-Ti mu dajes temu;
-Ti zelis da on pregleda konkurenciju, kakvi su kod njih podnaslovi (tako djeluje po komentarima), medjutim ti koristis opciju bez web searcha, tako da on daje svoje podnaslove (sto ne mora znacit da je lose)
-On pravi listu koja ide ovako uvod: generisani podnaslovi (svaki pojedinacno kao clan liste): zakljucak (mozda zakljucak moze da bude i dio ove srednje liste pa da se ponavlja, nisam vidio da je to izbaceno)
-Na osnovu liste, on pravi sadrzaj. E sad, ako je lista dugacka, ti si mu dao zadatak da napise detaljno za svaki podnaslov, i onda zbog toga mozes imati duge clanke. Npr, ako ti on napravi listu od 10-15 podnaslova, on bi mogao za svaki podnaslov da pise maksimum (recimo 1200-1500 rijeci), sto je recimo 12 * 1200, tako si dobio tih 15000 rijeci;

E sad, par stvari, imas dole da je limit tokena 300- to ne vjerujem da bi trebalo radit uopste? (pretpostavljam da si naknadno zamjenio)

I taj zakljucak koji pravi- on pravi zakljucak na osnovu Topica, ali ne na osnovu clanka. On generise clanak, ali ti mu ne govoris- napravi zakljucak za ovaj clanak koji sam generiso, nego mu govoris “napravi zakljucak za topic xxxx”

Tako nekako kako si opisao da. Ima tu još grešaka puno, ovo si dobro primjetio za summary haha, to bi trebao promijeniti.

Tokene sam stavio na 500, baš idem sad probati potpuno isti članak sa tokenima na 300.

Članak pod nazivom: 15 Negative Effects of AI on Youth, sa tokenima 500 sam dobio 3490 riječi, a sa tokenima 300 sam dobio 3120 riječi. Mislim da je tih 300 tokena dovoljno baš iz razloga što je svaka sekcija, tj. heading zaseban api call.

Ali ako mogu primjetiti, barem ovo što sam do sada napravio, se ne može 5 posto usporediti s onim kada ja sam pišem članak uz ChatGPT, jednostavno ne možeš iskontrolirati cijeli članak, ali eto za bulk publishing je dobra stvar ko zna napraviti da output bude dobar.

uff, nesot mi nema smisla… koliko odradi tih podnaslova? i jel na engleskom? Na 300 tokena je mozda 200 rijeci na eng; Nemoj tokene ogranicavat, nego u promptu dodaj da ogranici broj rijeci, jer ti moze sasjeci odgovor na pola ako proba dati duzi tekst (no sto mu tokeni omogucavaju)

2 Likeova

Promijenio sam si totalno kod jer mi se nije sviđao izbor headinga, i ovako kako sad radim je puno manji scalability ali mi se čini da je puno kvalitetniji output.

Znači napravio sam da naslove i headinge učitava iz CSV datoteke, što znači da moram sam (vjerojatno opet uz pomoć chatgpt hahah) smisliti naslove i headingse, ali je prednost što odjednom mogu pripremiti 50 članaka, spremiti ih u csv i dati njemu da piše.

Ono što sam si pripremio je to da me pita na kojem jeziku želim da piše, tako da mogu pisati na bilo kojem jeziku.

Što se tiče tokena, za intro sam stavio 250 jer me drugačije nije slušao, za headingse sam stavio 750 s tim da u tih 750 uvijek zna što je bilo u sekcijama prije i koje sekcije idu poslije (sažeto). Na taj način napokon dobivam da članak ima glavu i rep, a ne da kreće ispočetka ili da unutar jedne sekcije napiše informacije za do kraja članka.

Temperaturu sam stavio na 0.7, i tu se još malo mučim oko stajlinga pisanja (najviše u intro), ali vjerujem da ću ga kroz 10-tak članaka uspjeti malo bolje uštimati.

2 Likeova

E instalirah python i sve pakete sto mi chatGPT rece da treba uz to, uplatih Open AI api…i napravila sam skriptu i upravo se desio prvi uspjesan pokusaj da zbilja i postira sama clanak na Wordpress. Osjecaj uspjeha! (Bas mi je falio btw :grin:) Slika jos fali, tu se baguje

Skripta skida prvo transkript sa unprijed zadatih YouTube videa. Zatim pravi clanak i postira. Trebam sad da to poboljsavam ali pitanje @simeon @petarvu @anja1 i ostali koji ste vec radili skripte.

  1. Jeste pokusali da preko API vam open AI radi odmah automatski i slike?
  2. Jel neko pokusao sa skrinshotovima (da skript radi automatski skrinshotove)
  3. Sta da koristim, gpt 40 mini (stavila sam to trenutno) ili 3.5 turbo ili…? Kakva je razlika?
  4. I ako bih prevodila na druge jezike, jel vam skripta odmah pise na tom jeziku koji hocete, ili prvo radite jedan sadrzaj, pa taj gotovi prevodite na x razlicitih jezika?
1 Like
  1. Mislis da se generisu AI slike? I to bi moglo al mislim da je skuplje. Morao bi se poslati call, sacuvati sliku negdje na kompu (zapamtiti naziv) pa onda prije kreiranja wordpress clanka, odradi se upload u media library, uzme se mediaID, i on se iskoristi za clanak (ako pricamo o jednoj slici koju ces naprimjer stavit za featured).

Ovi sto ja radim, vec imam 6 puta po 1800 slika, i npr radim za jedan sajt- idu slike iz tog jednog foldera… na drugi sajt za isti jezik idu druge slike i tako… negdje se i izmjesa. Ne moze mnogo drugacije jer su neke slike bas specificne, a ne bi htjeo to da spajam na API od pixe ili pexelsa jer bi mogo dobit bilo sta (al postoji i ta opcija ako su neke generalne teme).

  1. Koristi 4o (zadnji). Treba da je najbolji, a jedan je od najjeftinijih.

  2. Ja imam strukture clanaka prevedene na te jezike, i onda za svaki jezik, za svaki sajt posebno, generise sadrzaj. Ovako je svugdje razlicito, a uz to i jeftinije. (ako prevodis sajt, onda placas vise input tokena dok posaljes zahtjev)

1 Like

Ne isplati mi se to…

Super. To cu. Tako sam vec mislila. Posto trenutno sam nastimala da vuce random sliku, znaci neke foldere jos da podesim direkt u wordpress media jos najbolje…

:ok_hand: vidjela sam taj “latest”. Bio mi sumnjiv jer je jeftin :grinning: uzeh 40 mini, i on je jeftin, a ok je. Uzecu taj latest. Thanks!

Ok, to sam trazila da kazes, da ne trazim :grin: Znaci jeftinije nego prevod. Iako u mom slucaju je input na njemackom, a output sam zamislila da bude na vise jezika (za sad testirah samo engleski). Moguce da u tom slucaju vec obracunava kao da je prevod…never mind, vidjecu kasnije. Hvala!

  • E sad reci koliko clanaka dnevno pravis? I po iskustvu sajt s kojom frekvencijom najbolje prolazi?
  • Jel ih startujes rucno ili si i to ugradio u skriptu? Koliko puta dnevno?
  • Kakvi su ti domeni (expired ili neki novi?
  • Koja ti duzina clanaka za sad najbolje prolazi?

Izvini sto bombardujem pitanjima, al oprostices. Jes da nije vezano direkt za kod, al oprostice i @anja1 sto spamujem temu malko :wink:

Input ti je samo ono sto saljes s callom. Znaci taj tekst sto idu u prompt… to sto ti pises na njemackom da ti on izbaci tekst na francuskom nije prevod- to je normalna potrosnja tokena. Mozes dodati u skripti i da ti printa svaki put koliko si potrosila tokena po clanku ako te bas interesuje.

Inace, ovdje (https://platform.openai.com/tokenizer) mozes ubacit tekst i vidis koliko tokena je tezak.

Trenutno nista al cu vjerovatno do kraja sedmice nastelovat sve. Sve dok ne udaram limite za API, ja stavim 8-9 skripti da radi istovremeno u pozadini. Meni sve ide u draftove… al je tu vec gotov clanak. Onda imam plug in auto scheduler, pa namjestim da ide oko 5 clanaka dnevno u razlicito vrijeme (prije sam radio 3 al msm da nema potrebe se tako limitirat).

Jedini razlog za radit manje jeste ako imas striktnije limite na open AI. Ja sam tamo tier 5 i imam jake limite, msm da mogu potrosit 200,000$ u apriju mjesecno. istok tako, broj poziva po sekundi/minuti je veci nego tebi, pa onda pazi ako pokreces vise u isto vrijeme.

Svaki sajt je posebno skripta i rucno pokrecem i organizujem sve lijepo. U notepadu imam zapiso koliko je uradjeno i cega, tako da se tacno zna, inace ne bi moglo obzirom na borj clanaka i sajtova i jezika.

Sve novi.

Ova nicha sto radim je takva da mogu ici i clanci od 500 rijeci i od 5000, i ja radim sve redom. Tako da nmg reci sta bolje prolazi. Ono sto je problem- meni je prompt na engleom, uhvatio sam ga da nekad odaje random engleske rijeci i tekst (znaci u pola recenice) za druge jezike… tako da ga sad upregnem da napise vise, pa onda ja naknadno obrisem to englesko (sto mogu naci lagano).

1 Like