Makale ana hatları oluşturmak için Google varlıkları ve GPT-4 nasıl kullanılır?
Yayınlanan: 2023-06-06Bu makalede, iyi yazılmışsa iyi bir sıralamaya sahip olacak birçok temel bileşen içerecek bir makale için bir taslak ve özet oluşturan otomatik bilgi istemi mühendisliği yapmak için biraz kazımayı ve Google'ın Bilgi Grafiği'ni nasıl kullanacağınızı öğreneceksiniz.
Her şeyin temelinde, GPT-4'e bir anahtar kelimeye ve seçtiğiniz iyi sıralamalı bir sayfada buldukları en iyi varlıklara dayalı bir makale taslağı oluşturmasını söylüyoruz.
Varlıklar belirginlik puanlarına göre sıralanır.
"Neden belirginlik puanı?" diye sorabilirsin.
Google, API belgelerinde belirginliği şu şekilde tanımlar:
“Bir varlık için belirginlik puanı, o varlığın tüm belge metnindeki önemi veya merkeziliği hakkında bilgi sağlar. 0'a yakın puanlar daha az belirginken, 1.0'a yakın puanlar oldukça belirgindir."
Yazmak isteyebileceğiniz bir içerik parçasında hangi varlıkların bulunması gerektiğini etkilemek için kullanmak için oldukça iyi bir ölçü gibi görünüyor, değil mi?
Başlarken
Bu konuda gidebileceğiniz iki yol vardır:
- Yaklaşık 5 dakika (bilgisayarınızı kurmanız gerekiyorsa belki 10 dakika) harcayın ve komut dosyalarını makinenizden çalıştırın veya…
- Oluşturduğum Colab'e atlayın ve hemen oynamaya başlayın.
İlkine kısmen katılıyorum ama aynı zamanda gün içinde bir veya iki Colab'a atladım. 😀
Hâlâ burada olduğunuzu ve bu kurulumu kendi makinenize kurmak istediğinizi ancak henüz Python veya IDE (Entegre Geliştirme Ortamı) yüklemediğinizi varsayarsak, sizi önce makinenizi kullanıma hazırlamayla ilgili hızlı bir okumaya yönlendireceğim. Jüpiter Defter. Yaklaşık 5 dakikadan fazla sürmemelidir.
Şimdi harekete geçme zamanı!
Makale ana hatları oluşturmak için Google varlıklarını ve GPT-4'ü kullanma
Bunu takip etmeyi kolaylaştırmak için yönergeleri aşağıdaki gibi biçimlendireceğim:
- Adım : Üzerinde bulunduğumuz adımın kısa bir açıklaması.
- Kod : Bu adımı tamamlamak için kullanılan kod.
- Açıklama : Kodun ne yaptığına dair kısa bir açıklama.
Adım 1: Bana ne istediğini söyle
Anahatları oluşturmaya dalmadan önce, ne istediğimizi tanımlamamız gerekiyor.
query = input ("What do you want to rank for :") print(query) url = input("What URL should I be inspired by : ") print(url)
Çalıştırıldığında, bu blok kullanıcıdan (muhtemelen sizden) makalenin sıralanmasını/hakkında olmasını istediğiniz sorguyu girmesini isteyecek ve ayrıca size olmasını istediğiniz bir makalenin URL'sini koyabileceğiniz bir yer sağlayacaktır. ilham alınacak parça.
Sıralaması iyi olan, siteniz için çalışacak bir formatta olan ve sadece sitenin gücüyle değil, yalnızca makalenin değeriyle sıralamayı hak ettiğini düşündüğünüz bir makale öneririm.
Çalıştırıldığında şöyle görünecektir:
2. Adım: Gerekli kitaplıkları yükleme
Ardından, sihri gerçekleştirmek için kullanacağımız tüm kitaplıkları kurmalıyız.
!pip install google-cloud-language beautifulsoup4 openai !pip install wandb --upgrade !pip install --force-reinstall -Iv protobuf==3.20.00 import requests import json from bs4 import BeautifulSoup from google.cloud import language_v1 from google.oauth2 import service_account import os import openai import pandas as pd import wandb
Aşağıdaki kütüphaneleri kuruyoruz:
- İstekler : Bu kitaplık, web sitelerinden veya web API'lerinden içerik almak için HTTP istekleri yapılmasına izin verir.
- JSON : JSON dizelerini Python nesnelerine ayrıştırmak ve Python nesnelerini JSON dizelerine seri hale getirmek dahil, JSON verileriyle çalışmak için işlevler sağlar.
- BeautifulSoup : Bu kitaplık, web kazıma amacıyla kullanılır. HTML veya XML belgelerini ayrıştırmaya ve bu belgelerde gezinmeye ve bunlardan ilgili bilgileri çıkarmaya yardımcı olur.
- Google.cloud.language_v1 : Google Cloud'dan doğal dil işleme yetenekleri sağlayan bir kitaplıktır. Metin verileri üzerinde duyarlılık analizi, varlık tanıma ve sözdizimi analizi gibi çeşitli görevlerin gerçekleştirilmesine olanak tanır.
- Google.oauth2.service_account : Bu kitaplık, Google OAuth2 Python paketinin bir parçasıdır. Bir Google Cloud projesinin kaynaklarına sınırlı erişim sağlamanın bir yolu olan bir hizmet hesabı kullanarak Google API'leriyle kimlik doğrulaması için destek sağlar.
- İşletim Sistemi : Bu kitaplık, işletim sistemiyle etkileşim kurmanın bir yolunu sunar. Dosya işlemleri, ortam değişkenleri ve süreç yönetimi gibi çeşitli işlevlere erişim sağlar.
- OpenAI : Bu kütüphane OpenAI Python paketidir. GPT-4 (ve 3) dahil olmak üzere OpenAI'nin dil modelleriyle etkileşim için bir arayüz sağlar. Geliştiricilerin metin oluşturmasına, metin tamamlamaları gerçekleştirmesine ve daha pek çok şeye olanak tanır.
- Pandas : Veri işleme ve analizi için güçlü bir kütüphanedir. Tablolar veya CSV dosyaları gibi yapılandırılmış verileri verimli bir şekilde işlemek ve analiz etmek için veri yapıları ve işlevleri sağlar.
- WandB : Bu kitaplık, "Weights & Biases" anlamına gelir ve deney izleme ve görselleştirme için bir araçtır. Makine öğrenimi deneylerinin metriklerini, hiperparametrelerini ve diğer önemli yönlerini günlüğe kaydetmeye ve görselleştirmeye yardımcı olur.
Çalıştırıldığında şöyle görünür:
Arama pazarlamacılarının güvendiği günlük haber bültenini edinin.
Şartlara bakın.
3. Adım: Kimlik doğrulama
Bir an için bizi yoldan çıkarıp kimlik doğrulamamızı yerine getirmem gerekecek. Bir OpenAI API anahtarına ve Google Knowledge Graph Search kimlik bilgilerine ihtiyacımız olacak.
Bu sadece birkaç dakika sürecektir.
OpenAI API'nizi Alma
Şu anda muhtemelen bekleme listesine katılmanız gerekiyor. API'ye erken erişebildiğim için şanslıyım ve bu yüzden bunu alır almaz kurulumunuza yardımcı olmak için yazıyorum.
Kayıt resimleri GPT-3'ten alınmıştır ve akış herkes tarafından kullanılabilir olduğunda GPT-4 için güncellenecektir.
GPT-4'ü kullanmadan önce ona erişmek için bir API anahtarına ihtiyacınız olacak.
Bir tane edinmek için OpenAI'nin ürün sayfasına gidin ve Başlayın'ı tıklayın.
Kayıt yönteminizi seçin (Google'ı seçtim) ve doğrulama işlemini gerçekleştirin. Bu adım için kısa mesaj alabilen bir telefona erişiminiz olması gerekir.
Bu tamamlandığında, bir API anahtarı oluşturacaksınız. Bu, OpenAI'nin komut dosyalarınızı hesabınıza bağlayabilmesi içindir.
Kimin ne yaptığını bilmeli ve yaptığınız şey için sizden ne kadar ücret alıp almamaları gerektiğine karar vermelidirler.
OpenAI fiyatlandırması
Kaydolduktan sonra, sadece deney yapıyorsanız sizi şaşırtıcı bir şekilde ileriye taşıyacak 5 dolarlık bir kredi alırsınız.
Bu yazı itibariyle, geçmişteki fiyatlandırma:
OpenAI anahtarınızı oluşturma
Anahtarınızı oluşturmak için sağ üstteki profilinize tıklayın ve API anahtarlarını görüntüle'yi seçin.
... ve ardından anahtarınızı oluşturacaksınız.
Lightbox'ı kapattıktan sonra, anahtarınızı görüntüleyemezsiniz ve anahtarı yeniden oluşturmanız gerekir, bu nedenle bu proje için kısa bir süre sonra kullanmak üzere bir Not Defteri belgesine kopyalamanız yeterlidir.
Not: Anahtarınızı kaydetmeyin (masaüstünüzdeki bir Not Defteri belgesi yüksek düzeyde güvenli değildir). Kısa bir süre kullandıktan sonra Not Defteri belgesini kaydetmeden kapatın.
Google Cloud kimlik doğrulamanızı alma
Öncelikle, Google hesabınıza giriş yapmanız gerekecek. (Bir SEO sitesindesiniz, bu yüzden bir siteniz olduğunu varsayıyorum. 🙂)
Bunu yaptıktan sonra, çok istekli hissediyorsanız Bilgi Grafiği API bilgisini gözden geçirebilir veya doğrudan API Konsoluna atlayabilir ve başlayabilirsiniz.
Konsola geldiğinizde:
Buna "Dave'in Harika Makaleleri" gibi bir ad verin. Bilirsin… hatırlaması kolay.
Ardından, API'leri ve hizmetleri etkinleştir seçeneğine tıklayarak API'yi etkinleştireceksiniz.
Bilgi Grafiği Arama API'sini bulun ve etkinleştirin.
Ardından, kimlik bilgilerini oluşturabileceğiniz ana API sayfasına geri götürüleceksiniz:
Ve bir hizmet hesabı oluşturacağız.
Basitçe bir hizmet hesabı oluşturun:
Gerekli bilgileri doldurun:
(Ona bir ad vermeniz ve sahiplik ayrıcalıkları vermeniz gerekir.)
Artık hizmet hesabımız var. Geriye anahtarımızı oluşturmak kalıyor.
Eylemler altındaki üç noktayı tıklayın ve Anahtarları yönet'i tıklayın.
Anahtar ekle'ye ve ardından Yeni anahtar oluştur'a tıklayın:
Anahtar türü JSON olacaktır.
Hemen, varsayılan indirme konumunuza indirildiğini göreceksiniz.
Bu anahtar, API'lerinize erişim sağlayacaktır, bu nedenle tıpkı OpenAI API'niz gibi güvende tutun.
Pekala… ve geri döndük. Senaryomuza devam etmeye hazır mısınız?
Artık bunlara sahip olduğumuza göre, API anahtarımızı ve indirilen dosyanın yolunu tanımlamamız gerekiyor. Bunu yapmak için kod şudur:
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/PATH-TO-FILE/FILENAME.JSON' %env OPENAI_API_KEY=YOUR_OPENAI_API_KEY openai.api_key = os.environ.get("OPENAI_API_KEY")
YOUR_OPENAI_API_KEY
kendi anahtarınızla değiştireceksiniz.
Ayrıca /PATH-TO-FILE/FILENAME.JSON
, dosya adı da dahil olmak üzere az önce indirdiğiniz hizmet hesabı anahtarının yolu ile değiştireceksiniz.
Hücreyi çalıştırın ve devam etmeye hazırsınız.
4. Adım: İşlevleri oluşturun
Ardından, şu işlevleri oluşturacağız:
- Yukarıda girdiğimiz web sayfasını kazıyın.
- İçeriği analiz edin ve varlıkları çıkarın.
- GPT-4 kullanarak bir makale oluşturun.
#The function to scrape the web page def scrape_url(url): response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") paragraphs = soup.find_all("p") text = " ".join([p.get_text() for p in paragraphs]) return text
#The function to pull and analyze the entities on the page using Google's Knowledge Graph API def analyze_content(content): client = language_v1.LanguageServiceClient() response = client.analyze_entities( request={"document": language_v1.Document(content=content, type_=language_v1.Document.Type.PLAIN_TEXT), "encoding_type": language_v1.EncodingType.UTF8} ) top_entities = sorted(response.entities, key=lambda x: x.salience, reverse=True)[:10] for entity in top_entities: print(entity.name) return top_entities
#The function to generate the content def generate_article(content): openai.api_key = os.environ["OPENAI_API_KEY"] response = openai.ChatCompletion.create( messages = [{"role": "system", "content": "You are a highly skilled writer, and you want to produce articles that will appeal to users and rank well."}, {"role": "user", "content": content}], model="gpt-4", max_tokens=1500, #The maximum with GPT-3 is 4096 including the prompt n=1, #How many results to produce per prompt #best_of=1 #When n>1 completions can be run server-side and the "best" used stop=None, temperature=0.8 #A number between 0 and 2, where higher numbers add randomness ) return response.choices[0].message.content.strip()
Bu hemen hemen tam olarak yorumların tanımladığı şeydir. Yukarıda özetlenen amaçlar için üç işlev oluşturuyoruz.
Keskin gözler şunları fark edecek:
messages = [{"role": "system", "content": "You are a highly skilled writer, and you want to produce articles that will appeal to users and rank well."},
İçeriği düzenleyebilir ( You are a highly skilled writer, and you want to produce articles that will appeal to users and rank well.
) ve ChatGPT'nin üstlenmesini istediğiniz rolü açıklayabilirsiniz. Ayrıca üslup da ekleyebilirsiniz (örneğin, "Dost canlısı bir yazarsınız...").
5. Adım: URL'yi kazıyın ve varlıkları yazdırın
Şimdi elimizi kirletiyoruz. Zamanı:
- Yukarıya girdiğimiz URL'yi kazıyın.
- Paragraf etiketleri içinde yaşayan tüm içeriği çekin.
- Google Knowledge Graph API aracılığıyla çalıştırın.
- Hızlı önizleme için varlıkların çıktısını alın.
Temel olarak, bu aşamada bir şey görmek istersiniz. Hiçbir şey görmüyorsanız, farklı bir siteye bakın.
content = scrape_url(url) entities = analyze_content(content)
Birinci satırın, ilk girdiğimiz URL'yi kazıyan işlevi çağırdığını görebilirsiniz. İkinci satır, varlıkları ve temel ölçümleri çıkarmak için içeriği analiz eder.
analyze_content işlevinin bir kısmı, hızlı başvuru ve doğrulama için bulunan varlıkların bir listesini de yazdırır.
6. Adım: Varlıkları analiz edin
Senaryoyla ilk kez oynamaya başladığımda, 20 varlıkla başladım ve bunun genellikle çok fazla olduğunu çabucak keşfettim. Ancak varsayılan (10) doğru mu?
Bulmak için, kolay değerlendirme için verileri W&B Tablolarına yazacağız. Gelecekteki değerlendirmeler için verileri süresiz olarak tutacaktır.
Öncelikle, kaydolmak için yaklaşık 30 saniye ayırmanız gerekecek. (Endişelenmeyin, bu tür şeyler için ücretsizdir!) Bunu https://wandb.ai/site adresinden yapabilirsiniz.
Bunu yaptıktan sonra, bunu yapmak için kod şudur:
run = wandb.init(project="Article Summary With Entities") columns=["Name", "Salience"] ent_table = wandb.Table(columns=columns) for entity in entities: ent_table.add_data(entity.name, entity.salience) run.log({"Entity Table": ent_table}) wandb.finish()
Çalıştırıldığında, çıktı şöyle görünür:
Koşunuzu görüntülemek için bağlantıya tıkladığınızda şunları bulacaksınız:
Belirginlik puanında bir düşüş görebilirsiniz. Bu puanın, sorgu için değil, o terimin sayfa için ne kadar önemli olduğunu hesapladığını unutmayın.
Bu verileri incelerken, varlıkların sayısını belirginliğe göre veya alakasız terimlerin açıldığını gördüğünüzde ayarlamayı seçebilirsiniz.
Varlık sayısını ayarlamak için, işlevler hücresine gider ve şunları düzenlersiniz:
Daha sonra, yeni varlık sayısını kullanmak için içeriği kazımak ve analiz etmek için hücreyi ve çalıştırdığınız hücreyi tekrar çalıştırmanız gerekir.
7. Adım: Makale taslağını oluşturun
Hepinizin beklediği an, makale taslağını oluşturma zamanı.
Bu iki kısımda yapılır. İlk olarak, hücreyi ekleyerek bilgi istemini oluşturmamız gerekiyor:
entity_names = [entity.name for entity in entities] gpt_prompt = f"Create an outline for an article about {query} that includes the following entities: {', '.join(entity_names)}." print(gpt_prompt)
Bu, esasen bir makale oluşturmak için bir bilgi istemi oluşturur:
Ardından geriye kalan tek şey, aşağıdakileri kullanarak makale taslağını oluşturmaktır:
generated_article = generate_article(gpt_prompt) print(generated_article)
Hangisi gibi bir şey üretecek:
Ayrıca bir özetin yazılmasını istiyorsanız, şunları ekleyebilirsiniz:
gpt_prompt2 = f"Write an article summary about {query} for an article with an outline of: {generated_article}." generated_article = generate_article(gpt_prompt2) print(generated_article)
Hangisi gibi bir şey üretecek:
Bu makalede ifade edilen görüşler konuk yazara aittir ve mutlaka Search Engine Land değildir. Personel yazarları burada listelenir.