
Bu hatayı nasıl düzeltirim
1
●66
- 15-07-2023, 20:27:27elimde wordpress chatbpt bot u var post gönderirken bu hata çıkıyor ve post gönderme duruyor nasıl düzelir acaba

- 15-07-2023, 21:15:23GPTTXTWP_32bit.py kodları şöle ne gibi değişiklik yapmam gerekir
#!/usr/bin/env python # -*- coding: utf-8 -*- import openai import requests import random import string import requests import json import os import sys from requests.packages import urllib3 import re urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) with open("config.json", "r", encoding="utf-8") as f: read = json.load(f) f.close() openai.api_key = read['openai.api_key'] unsplash_key = read['unsplash_key'] w_base_url = read['w_base_url'] w_username = read['w_username'] w_password = read['w_password'] questionspath = "basliklar.txt" if not os.path.exists(questionspath): open(questionspath, 'w', encoding='utf-8-sig').close() print("'basliklar.txt' dosyası oluşturuldu. soruları alt alta ekleyip programı yeniden başlatın.") input("bu ekranı kapatmak için enter basınız.") sys.exit() OPENAI_COMPLETION_OPTIONS = { "temperature": 0.7, "max_tokens": 1000, "top_p": 1, "frequency_penalty": 0, "presence_penalty": 0 } def remove_invalid_characters(text): valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits) clean_name = ''.join(c if c in valid_chars else '_' for c in text) clean_name = clean_name.strip() # boşlukları temizle clean_name = clean_name.rstrip('.') # noktaları temizle return clean_name def get_tag_id(tag_name): tag_url = w_base_url + '/wp-json/wp/v2/tags?search=' + tag_name response = requests.get(tag_url, auth=(w_username, w_password),verify=False).json() if not response: new_tag_url = w_base_url+ '/wp-json/wp/v2/tags' tag_data = {'name': tag_name} response = requests.post(new_tag_url, auth=(w_username, w_password), json=tag_data,verify=False).json() return response['id'] return response[0]['id'] def image_upload(imagepath,desc): if "/" in imagepath: imagename = imagepath.split("/")[-1] else: imagename = imagepath image_data = { 'file': (imagename, open(imagepath, 'rb'), 'image/jpeg', {'Expires': '0'}), 'caption': desc } response = requests.post(w_base_url+'/wp-json/wp/v2/media', files=image_data,auth=(w_username, w_password),verify=False) image_info = response.json() return image_info['id'],image_info['source_url'] def post_wp(title,makaleler,ozet,etiketler,images,kategori,status='draft'): cleaned_text = remove_invalid_characters(title) featured_media = "" inline_media = list() for i , image in enumerate(images, start=1): if i == 1: featured_media, _blank = image_upload(image,cleaned_text) os.remove(image) else: _blank, media_url = image_upload(image,cleaned_text) inline_media.append(media_url) os.remove(image) icerik = "" if len(inline_media) == 2: media1 = '<figure class="wp-block-image size-full"><img src="'+ inline_media[0] + '" alt="'+cleaned_text+'"/></figure>' media2 = '<figure class="wp-block-image size-full"><img src="'+ inline_media[1] + '" alt="'+cleaned_text+'"/></figure>' icerik = makaleler[0] + media1 + makaleler[1] + media2 elif len(inline_media) == 1: media1 = '<figure class="wp-block-image size-full"><img src="'+ inline_media[0] + '" alt="'+cleaned_text+'"/></figure>' icerik = makaleler[0] + media1 + makaleler[1] else: icerik = makaleler[0] + makaleler[1] post_data = { 'title': title, 'content': icerik, "excerpt": ozet, 'status': status, 'tags': etiketler } post_data['tags'] = [get_tag_id(tag) for tag in post_data['tags']] cat_id = get_cat_id(kategori) if cat_id: post_data['categories'] = [cat_id] if featured_media: post_data['featured_media'] = featured_media response = requests.post(w_base_url+'/wp-json/wp/v2/posts', auth=(w_username, w_password), json=post_data,verify=False) if response.status_code == 201: print('Yeni yazı başarıyla gönderildi!') else: print('Bir hata oluştu:', response.json()) def get_cat_names(): cat_url = w_base_url+'/wp-json/wp/v2/categories' response = requests.get(cat_url, auth=(w_username, w_password),verify=False).json() katlist = list() for category in response: katlist.append(category["name"]) return katlist def get_cat_id(category_name): cat_url = w_base_url+'/wp-json/wp/v2/categories?search=' + category_name response = requests.get(cat_url, auth=(w_username, w_password),verify=False).json() if response: return response[0]['id'] else: return def random_filename(): letters = string.ascii_lowercase return ''.join(random.choice(letters) for i in range(10)) def unsplash_search(kelimeler): photos = list() for kelime in kelimeler.split(","): response = requests.get( "https://api.unsplash.com/search/photos?query="+kelime+"&per_page=50", headers={"Authorization": "Client-ID "+unsplash_key}) photo_data = response.json() finame = random_filename() photo_results = photo_data['results'] random.shuffle(photo_results) for i , photo in enumerate(photo_results, start=1): if i < 4: photo_url = photo['urls']['regular'] response = requests.get(photo_url) fname = finame+"_"+str(i)+".jpg" with open(fname, 'wb') as f: f.write(response.content) photos.append(fname) else: break if photos: break return photos def ask_question(messages): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=messages, **OPENAI_COMPLETION_OPTIONS ) response_text = response.choices[0].message.content return response_text def askme_stored(ask,messages): #print("") #print("soru:", ask) #print("") if not messages: prompt = """As an advanced chatbot named ChatGPT, your primary goal is to assist users to the best of your ability. This may involve answering questions, providing helpful information, or completing tasks based on user input. In order to effectively assist users, it is important to be detailed and thorough in your responses. Use examples and evidence to support your points and justify your recommendations or solutions. Remember to always prioritize the needs and satisfaction of the user. Your ultimate goal is to provide a helpful and enjoyable experience for the user. You must use h1,h2 tags for write article. subheadings (including H1, H2, H3, and H4 html tag headings)""" messages.append({"role": "system", "content": prompt}) messages.append({"role": "user", "content": ask}) while True: try: answer = ask_question(messages) break except: pass messages = messages[2:] print("") print("Cevap:", answer) print("") messages.append({"role": "assistant", "content": answer}) return answer, messages def find_between(s, start, end): return (s.split(start))[1].split(end)[0] def tag_parte(content): content = content.replace("\n"," ") tags = find_between(content,"<etiketler>","</etiketler>").strip() unsplash = find_between(content,"<unsplash>","</unsplash>").strip().replace("_"," ").replace("-"," ") return tags,unsplash def cat_parte(content): content = content.replace("\n"," ") cat = find_between(content,"<kategori>","</kategori>").strip() return cat def titles_parte(content): results = re.findall(r'\d+\.\s+\"(.*)\"', content) if results: return results[:-1] else: return re.findall(r'\d+\.\s+(.*)', content)[:-1] def removeques(ques): try: with open(questionspath, "r", encoding='utf-8-sig') as f: lines = f.read().splitlines() try: lines.remove(ques) except: pass with open(questionspath, "w", encoding='utf-8-sig') as f: f.writelines(["%s\n" % item for item in lines]) except: pass def main(): kategoriler = get_cat_names() quess = open(questionspath, encoding='utf-8-sig').readlines() for i, baslik in enumerate(quess, start=1): if baslik.strip(): messages = list() print(baslik,"makale hazırlanıyor...") while True: soru = "subheadings (including H1, H2, H3, and H4 html tag headings), 1000 kelimelik makale html formatında yaz, Makaleyi 2 parçaya böl, her cevapta bir parçayı vereceksin. Şimdi ilk parçayı yaz. Konu: '"+baslik+"'" makale1, messages = askme_stored(soru,messages) if "</h1>" in makale1: break else: messages = list() print("Seo uyumlu veri gelmediği için tekrar deneniyor...") print(baslik,"makale devam ettirirliyor...") soru = "Şimdi ikinci kısmı yaz." makale2, messages = askme_stored(soru,messages) print(baslik,"makale için meta hazırlanıyor...") soru = "Bu makale için bir meta açıklaması yaz." meta, messages = askme_stored(soru,messages) print(baslik,"makale için etiketler hazırlanıyor...") while True: soru = "'"+baslik+"' Bu makale için bana etiketler önerip, etiketleri <etiketler>etiket 1,etiket 2,etiket 3</etiketler> bu şekilde yazar mısın? ayrıca unsplash'da resim araması yapmak için makale ile alakalı genel iki tane etiketi mutlaka ingilizce olarak verirmisin, onu da <unsplash>genel etiket 1, genel etiket 2<unsplash> bu şekilde yazar mısın?" etiketinfos, messages = askme_stored(soru,messages) tags,unsplash = tag_parte(etiketinfos) if unsplash: break print(baslik,"makale için kategori seçimi yaptırılıyor...") soru = "Bu makale için en uygun kategori '"+ ','.join(kategoriler)+ "' bunlardan hangisidir. <kategori>seçilen kategori<kategori> bu şekilde yazar mısın?" kategori_source, messages = askme_stored(soru,messages) kategori = cat_parte(kategori_source) print(baslik,"için resimler bulunuyor") images = unsplash_search(unsplash) title = baslik makaleler = [makale1,makale2] ozet = meta etiketler = tags.split(',') print("konu Hazırlanıyor.") post_wp(title,makaleler,ozet,etiketler,images,kategori,status='publish') # taslak için status='draft', yayınlama için status='publish' removeques(baslik) input("Uygun makaleler yayınlandı.") if __name__ == "__main__": main()