Cara menggunakan entitas Google dan GPT-4 untuk membuat kerangka artikel

Diterbitkan: 2023-06-06

Dalam artikel ini, Anda akan mempelajari cara menggunakan beberapa scraping dan Grafik Pengetahuan Google untuk melakukan rekayasa perintah otomatis yang menghasilkan garis besar dan ringkasan untuk artikel yang, jika ditulis dengan baik, akan berisi banyak bahan utama untuk mendapatkan peringkat yang baik.

Pada dasarnya, kami memberi tahu GPT-4 untuk membuat garis besar artikel berdasarkan kata kunci dan entitas teratas yang mereka temukan di halaman berperingkat baik pilihan Anda.

Entitas diurutkan berdasarkan skor arti-penting mereka.

"Mengapa skor arti-penting?" Anda mungkin bertanya.

Google menggambarkan arti-penting dalam dokumen API mereka sebagai:

“Skor arti-penting untuk suatu entitas memberikan informasi tentang pentingnya atau sentralitas entitas tersebut ke seluruh teks dokumen. Skor yang mendekati 0 kurang menonjol, sedangkan skor yang mendekati 1.0 sangat menonjol.”

Tampaknya metrik yang cukup bagus untuk digunakan untuk memengaruhi entitas mana yang harus ada dalam konten yang mungkin ingin Anda tulis, bukan?

Mulai

Ada dua cara untuk melakukannya:

  • Habiskan sekitar 5 menit (mungkin 10 jika Anda perlu menyiapkan komputer) dan menjalankan skrip dari mesin Anda, atau…
  • Langsung ke Colab yang saya buat dan langsung mulai bermain-main.

Saya tidak setuju dengan yang pertama, tetapi saya juga melompat ke satu atau dua Colab di zaman saya. 😀

Dengan asumsi Anda masih di sini dan ingin menyiapkan ini di mesin Anda sendiri tetapi belum menginstal Python atau IDE (Lingkungan Pengembangan Terpadu), saya akan mengarahkan Anda terlebih dahulu untuk membaca cepat tentang menyetel mesin Anda untuk digunakan Notebook Jupyter. Seharusnya tidak lebih dari sekitar 5 menit.

Sekarang, saatnya untuk pergi!

Menggunakan entitas Google dan GPT-4 untuk membuat kerangka artikel

Agar mudah diikuti, saya akan memformat petunjuknya sebagai berikut:

  • Langkah : Deskripsi singkat tentang langkah yang sedang kita lakukan.
  • Code : Kode untuk menyelesaikan langkah tersebut.
  • Penjelasan : Penjelasan singkat tentang apa yang dilakukan kode.

Langkah 1: Beri tahu saya apa yang Anda inginkan

Sebelum kita mulai membuat garis besar, kita perlu menentukan apa yang kita inginkan.

 query = input ("What do you want to rank for :") print(query) url = input("What URL should I be inspired by : ") print(url)

Saat dijalankan, blok ini akan meminta pengguna (mungkin Anda) untuk memasukkan kueri yang ingin Anda beri peringkat untuk/menjadi artikel, serta memberi Anda tempat untuk memasukkan URL artikel yang Anda inginkan bagian untuk terinspirasi oleh.

Saya menyarankan artikel yang berperingkat baik, dalam format yang sesuai untuk situs Anda, dan menurut Anda layak mendapat peringkat berdasarkan nilai artikel saja dan bukan hanya kekuatan situs.

Saat dijalankan, akan terlihat seperti:

Menentukan istilah target dan inspirasi Anda

Langkah 2: Menginstal pustaka yang diperlukan

Selanjutnya, kita harus menginstal semua pustaka yang akan kita gunakan untuk membuat keajaiban terjadi.

 !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

Kami memasang pustaka berikut:

  • Permintaan : Pustaka ini memungkinkan pembuatan permintaan HTTP untuk mengambil konten dari situs web atau API web.
  • JSON : Ini menyediakan fungsi untuk bekerja dengan data JSON, termasuk mem-parsing string JSON menjadi objek Python dan membuat serial objek Python menjadi string JSON.
  • BeautifulSoup : Library ini digunakan untuk keperluan web scraping. Ini membantu dalam mem-parsing dan menavigasi dokumen HTML atau XML dan mengekstraksi informasi yang relevan darinya.
  • Google.cloud.language_v1 : Ini adalah perpustakaan dari Google Cloud yang menyediakan kemampuan pemrosesan bahasa alami. Ini memungkinkan untuk melakukan berbagai tugas seperti analisis sentimen, pengenalan entitas , dan analisis sintaksis pada data teks.
  • Google.oauth2.service_account : Pustaka ini adalah bagian dari paket Google OAuth2 Python. Ini memberikan dukungan untuk mengautentikasi dengan Google API menggunakan akun layanan, yang merupakan cara untuk memberikan akses terbatas ke sumber daya proyek Google Cloud.
  • OS : Library ini menyediakan cara untuk berinteraksi dengan sistem operasi. Ini memungkinkan mengakses berbagai fungsi seperti operasi file, variabel lingkungan, dan manajemen proses.
  • OpenAI : Pustaka ini adalah paket OpenAI Python. Ini menyediakan antarmuka untuk berinteraksi dengan model bahasa OpenAI, termasuk GPT-4 (dan 3). Ini memungkinkan pengembang untuk menghasilkan teks, melakukan penyelesaian teks, dan banyak lagi.
  • Pandas : Ini adalah perpustakaan yang kuat untuk manipulasi dan analisis data. Ini menyediakan struktur dan fungsi data untuk menangani dan menganalisis data terstruktur secara efisien, seperti tabel atau file CSV.
  • WandB : Pustaka ini adalah singkatan dari "Bobot & Bias" dan merupakan alat untuk pelacakan dan visualisasi eksperimen. Ini membantu mencatat dan memvisualisasikan metrik, hyperparameter, dan aspek penting lainnya dari eksperimen pembelajaran mesin.

Saat dijalankan, tampilannya seperti ini:

Menginstal library yang diperlukan

Dapatkan buletin pencarian harian yang diandalkan pemasar.

Memproses ... tunggu sebentar.

Lihat persyaratan.


Langkah 3: Otentikasi

Saya harus mengalihkan perhatian kita sejenak untuk menghindari dan mendapatkan autentikasi kita. Kami memerlukan kunci API OpenAI dan kredensial Pencarian Grafik Pengetahuan Google.

Ini hanya akan memakan waktu beberapa menit.

Mendapatkan API OpenAI Anda

Saat ini, Anda mungkin perlu bergabung dalam daftar tunggu. Saya beruntung memiliki akses ke API lebih awal, jadi saya menulis ini untuk membantu Anda menyiapkannya segera setelah Anda mendapatkannya.

Gambar pendaftaran berasal dari GPT-3 dan akan diperbarui untuk GPT-4 setelah alur tersedia untuk semua.

Sebelum dapat menggunakan GPT-4, Anda memerlukan kunci API untuk mengaksesnya.

Untuk mendapatkannya, cukup buka halaman produk OpenAI, dan klik Mulai .

Halaman produk OpenAI

Pilih metode pendaftaran Anda (saya memilih Google) dan jalankan melalui proses verifikasi. Anda memerlukan akses ke ponsel yang dapat menerima SMS untuk langkah ini.

Setelah selesai, Anda akan membuat kunci API. Ini agar OpenAI dapat menghubungkan skrip Anda ke akun Anda.

Mereka harus tahu siapa yang melakukan apa dan menentukan apakah dan berapa banyak mereka harus menagih Anda untuk apa yang Anda lakukan.

Harga OpenAI

Setelah mendaftar, Anda mendapatkan kredit $5 yang akan sangat membantu Anda jika Anda hanya bereksperimen.

Pada tulisan ini, harga masa lalu yaitu:

Harga OpenAI

Membuat kunci OpenAI Anda

Untuk membuat kunci Anda, klik profil Anda di kanan atas dan pilih Lihat kunci API .

Membuat kunci OpenAI Anda

...dan kemudian Anda akan membuat kunci Anda.

Membuat kunci OpenAI Anda

Setelah Anda menutup lightbox, Anda tidak dapat melihat kunci Anda dan harus membuatnya kembali, jadi untuk proyek ini, cukup salin ke dokumen Notepad untuk segera digunakan.

Catatan: Jangan simpan kunci Anda (dokumen Notepad di desktop Anda tidak terlalu aman). Setelah Anda menggunakannya sebentar, tutup dokumen Notepad tanpa menyimpannya.

Mendapatkan autentikasi Google Cloud Anda

Pertama, Anda harus masuk ke akun Google Anda. (Anda berada di situs SEO, jadi saya menganggap Anda memilikinya. 🙂)

Setelah Anda selesai melakukannya, Anda dapat meninjau info API Grafik Pengetahuan jika Anda merasa sangat ingin atau langsung membuka Konsol API dan memulai.

Setelah Anda berada di konsol:

Mendapatkan autentikasi Google Cloud Anda

Beri nama sesuatu seperti "Artikel Keren Dave". Anda tahu… mudah diingat.

Selanjutnya, Anda akan mengaktifkan API dengan mengeklik Aktifkan API dan layanan .

Google Cloud - Mengaktifkan API dan layanan

Temukan API Pencarian Grafik Pengetahuan, dan aktifkan.

API Penelusuran Grafik Pengetahuan Google Cloud

Anda kemudian akan dibawa kembali ke halaman API utama, tempat Anda dapat membuat kredensial:

Halaman API Penelusuran Grafik Pengetahuan Google Cloud

Dan kami akan membuat akun layanan.

Penelusuran Grafik Pengetahuan Google Cloud - mengelola akun layanan

Cukup buat akun layanan:

Penelusuran Grafik Pengetahuan Google Cloud - pembuatan akun layanan

Isi informasi yang diperlukan:

Penelusuran Grafik Pengetahuan Google Cloud - detail akun layanan

(Anda harus memberinya nama dan memberinya hak istimewa pemilik.)

Sekarang kami memiliki akun layanan kami. Yang tersisa hanyalah membuat kunci kita.

Klik tiga titik di bawah Tindakan dan klik Kelola kunci .

Penelusuran Grafik Pengetahuan Google Cloud - Kelola kunci

Klik Tambah kunci lalu Buat kunci baru :

Penelusuran Grafik Pengetahuan Google Cloud - Buat kunci baru

Jenis kuncinya adalah JSON.

Segera, Anda akan melihatnya mengunduh ke lokasi unduhan default Anda.

Kunci ini akan memberikan akses ke API Anda, jadi jaga keamanannya, sama seperti OpenAI API Anda.

Baiklah… dan kami kembali. Siap melanjutkan skrip kami?

Sekarang setelah kita memilikinya, kita perlu menentukan kunci API dan jalur ke file yang diunduh. Kode untuk melakukan ini adalah:

 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")

Anda akan mengganti YOUR_OPENAI_API_KEY dengan kunci Anda sendiri.

Anda juga akan mengganti /PATH-TO-FILE/FILENAME.JSON dengan jalur ke kunci akun layanan yang baru saja Anda unduh, termasuk nama file.

Jalankan sel dan Anda siap untuk melanjutkan.

Langkah 4: Buat fungsi

Selanjutnya, kita akan membuat fungsi untuk:

  • Kikis halaman web yang kami masukkan di atas.
  • Menganalisis konten dan mengekstrak entitas.
  • Hasilkan artikel menggunakan GPT-4.
 #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()

Ini persis seperti yang dijelaskan oleh komentar. Kami membuat tiga fungsi untuk tujuan yang diuraikan di atas.

Mata yang tajam akan memperhatikan:

 messages = [{"role": "system", "content": "You are a highly skilled writer, and you want to produce articles that will appeal to users and rank well."},

Anda dapat mengedit konten ( You are a highly skilled writer, and you want to produce articles that will appeal to users and rank well. ) dan menjelaskan peran yang Anda inginkan untuk diambil oleh ChatGPT. Anda juga dapat menambahkan nada (misalnya, "Kamu adalah penulis yang ramah ...").

Langkah 5: Kikis URL dan cetak entitas

Sekarang tangan kita kotor. Ini waktu untuk:

  • Kikis URL yang kami masukkan di atas.
  • Tarik semua konten yang ada di dalam tag paragraf.
  • Jalankan melalui Google Knowledge Graph API.
  • Keluarkan entitas untuk pratinjau cepat.

Pada dasarnya, Anda ingin melihat apa pun pada tahap ini. Jika Anda tidak melihat apa pun, periksa situs lain.

 content = scrape_url(url) entities = analyze_content(content)

Anda dapat melihat bahwa baris pertama memanggil fungsi yang menggores URL yang pertama kali kita masukkan. Baris kedua menganalisis konten untuk mengekstrak entitas dan metrik kunci.

Bagian dari fungsi analyze_content juga mencetak daftar entitas yang ditemukan untuk referensi cepat dan verifikasi.

Langkah 6: Menganalisis entitas

Ketika saya pertama kali bermain-main dengan skrip, saya mulai dengan 20 entitas dan dengan cepat menemukan bahwa biasanya terlalu banyak. Tetapi apakah standarnya (10) benar?

Untuk mengetahuinya, kami akan menulis data ke Tabel W&B agar mudah dinilai. Itu akan menyimpan data tanpa batas waktu untuk evaluasi di masa mendatang.

Pertama, Anda perlu waktu sekitar 30 detik untuk mendaftar. (Jangan khawatir, ini gratis untuk hal semacam ini!) Anda dapat melakukannya di https://wandb.ai/site.

Setelah Anda selesai melakukannya, kode untuk melakukan ini adalah:

 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()

Saat dijalankan, outputnya terlihat seperti ini:

Tulis metrik entitas ke W&B untuk dianalisis

Dan ketika Anda mengeklik tautan untuk melihat lari Anda, Anda akan menemukan:

tabel entitas

Anda dapat melihat penurunan skor arti-penting. Ingatlah bahwa skor ini menghitung seberapa penting istilah tersebut bagi halaman, bukan kueri.

Saat meninjau data ini, Anda dapat memilih untuk menyesuaikan jumlah entitas berdasarkan arti-penting, atau hanya saat Anda melihat istilah yang tidak relevan muncul.

Untuk menyesuaikan jumlah entitas, Anda akan menuju ke sel fungsi dan mengedit:

tabel entitas

Anda kemudian harus menjalankan sel lagi dan yang Anda jalankan untuk mengikis dan menganalisis konten untuk menggunakan hitungan entitas baru.

Langkah 7: Hasilkan garis besar artikel

Saat Anda semua sudah menunggu, saatnya untuk menghasilkan garis besar artikel.

Ini dilakukan dalam dua bagian. Pertama, kita perlu membuat prompt dengan menambahkan sel:

 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)

Ini pada dasarnya membuat prompt untuk menghasilkan artikel:

Buat prompt garis besar artikel

Dan kemudian, yang tersisa hanyalah membuat garis besar artikel menggunakan yang berikut ini:

 generated_article = generate_article(gpt_prompt) print(generated_article)

Yang akan menghasilkan sesuatu seperti:

Buat garis besar artikel

Dan jika Anda juga ingin mendapatkan ringkasan tertulis, Anda dapat menambahkan:

 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)

Yang akan menghasilkan sesuatu seperti:

Menghasilkan ringkasan artikel

Pendapat yang diungkapkan dalam artikel ini adalah dari penulis tamu dan belum tentu Search Engine Land. Penulis staf tercantum di sini.