Keluaran obrolan Chat GTP omong kosong

62

Saya mencoba membuat PDF dari percakapan ChatGPT, tetapi sejak 2026 fitur tersebut diblokir.

Jadi saya mencoba membuatnya berdasarkan model MVC.

Karena kode masih belum lengkap, saya membuat persyaratan seperti di bawah ini.

Jika hanya menggunakan persyaratan untuk membuat satu file, itu akan berceceran dan sulit untuk melengkapi fungsinya.

Jadi saya membuat layar secara kasar dengan kode model MVC dasar yang biasa saya gunakan ketika membuat program lain, dan menerapkan persyaratan di bawah ini. Saya menemukan bahwa itu dibuat lebih baik daripada ketika menggunakan ChatGPT di musim dingin 2025.

Itu akan berhasil jika Anda menyempurnakan persyaratan di bawah ini. Saya membuat Chromium, menghasilkan file JSON, dan membuat cara untuk mencetak PDF atau Word berdasarkan itu.

1. GUI

1.1. GUI dibuat dengan Python Tkinter

- Bentuk di mana pengguna memasukkan tautan dan menekan tombol untuk memulai pekerjaan.

- Lanjutkan modifikasi/pembuatan kode hanya ketika pengguna meminta dengan jelas.

1.2. Target input adalah tautan bersama ChatGPT

- Pada dasarnya menargetkan tautan bersama dalam bentuk https://chatgpt.com/share/...

- Jangan gunakan metode login atau bypass otorisasi.

1.3. Pengguna hanya perlu memasukkan tautan dan menekan tombol Buat PDF

- Setelah itu, pemuatan pesan, pengumpulan, dan pembuatan PDF berjalan secara otomatis.

- Pengguna tidak perlu scroll manual atau memuat pesan terlebih dahulu.

2. Guliran

2.1 Percakapan dikumpulkan secara bertahap sementara guliran otomatis

- Kumpulkan pesan yang sedang ditampilkan.

- Gulir sejumlah tertentu.

- Kumpulkan pesan yang baru muncul.

- Ulangi ini sampai akhir.

- Pesan adalah pertanyaan pengguna dan jawaban ChatGPT yang digabungkan menjadi satu pesan.

2.2 Waktu tunggu setelah guliran ditentukan sebagai konstanta

- Biarkan pengguna mengubah nilai konstanta di bagian atas kode secara langsung.

- Jika terjadi masalah kelalaian atau pemuatan, pengguna dapat menjalankan kembali dengan meningkatkan waktu tunggu.

2.3 Jumlah pergerakan gulir ditetapkan lebih kecil dari seluruh layar

- Misalnya, hanya pindahkan sekitar 60-70% dari tinggi layar.

- Kurangi risiko kelalaian pesan dengan membuat layar sebelumnya dan berikutnya sedikit tumpang tindih.

3. Pesan

3.1 Termasuk fungsi validasi kontinuitas pesan

- Periksa apakah pesan terakhir dari bagian sebelumnya sebagian ada di bagian berikutnya.

- Jika tidak ada tumpang tindih antara bagian sebelumnya dan berikutnya, tentukan kemungkinan kelalaian.

- Jika perlu, coba lagi atau catat kesalahan.

3.2 Pesan duplikat dihapus secara otomatis pada tahap pengumpulan

- Jika ID pesan tersedia, gunakan ID sebagai standar.

- Jika ID tidak dapat digunakan, tentukan apakah itu pesan yang sama menggunakan penulis + konten pesan + hash, dll.

- ID pesan logis = ID yang dikelola program dengan menggabungkan pertanyaan pengguna + jawaban ChatGPT yang sesuai.

- Jika pesan logis yang sama dikumpulkan berulang kali di beberapa bagian gulir, pertahankan hanya satu.

3.3 Hapus duplikat konten dalam pesan

- Dalam satu pesan logis, pastikan paragraf, daftar, tabel, dan blok kode yang identik tidak dikumpulkan secara duplikat.

- Jangan kumpulkan konten yang sama secara bersamaan dari elemen induk DOM dan elemen anak di dalamnya.

- Prioritaskan pengumpulan blok konten yang paling kecil dan bermakna seperti paragraf, daftar, tabel, dan kode.

- Jika konten yang sama ditemukan secara bersamaan di blok induk dan anak, pertahankan hanya satu berdasarkan blok anak.

- Jika duplikasi dikonfirmasi oleh hubungan DOM induk/anak, pengenal DOM yang sama, elemen yang direplikasi yang dibuat di lokasi yang sama, dll., pertahankan hanya satu.

- Jangan hapus konten normal yang berbeda hanya karena teksnya sama.

- Keluarkan DOM tersembunyi, DOM yang direplikasi untuk tampilan layar, dan DOM duplikat untuk aksesibilitas dari target pengumpulan.

3.4 Proses pengumpulan memungkinkan duplikasi interval untuk mencegah kelalaian

- Selama proses gulir otomatis, kumpulkan bagian sebelumnya dan berikutnya dengan sengaja tumpang tindih.

- Pesan dan konten yang identik yang dikumpulkan secara tumpang tindih dihapus dari data pengumpulan akhir.

- Jangan tinggalkan duplikasi yang tidak disengaja dalam teks pengumpulan akhir.

- Duplikasi batas yang disengaja antara PDF diperlakukan sebagai operasi normal terpisah sesuai dengan aturan di 5.3-5.5 dan 7.2

4. Gambar, Tabel, Hyperlink

4.1 Abaikan gambar

- Unduh gambar atau penyisipan PDF tidak diperlukan.

- Keterlambatan pemuatan yang disebabkan oleh gambar, penyesuaian ukuran, dan masalah tata letak halaman tidak perlu dipertimbangkan.

4.2 Pembuatan PDF Berpusat pada Teks

- Mencakup kalimat biasa, daftar, tabel, kode, rumus, dll.

- Mereplikasi UI khusus ChatGPT atau elemen interaktif seperti yang terlihat di layar bukanlah tujuannya.

- Kotak kode terpisah dirender untuk membedakan blok kode dari teks utama.

- Informasi bahasa dipertahankan jika bahasa kode dapat diidentifikasi, misalnya Python, JavaScript, dll.

- Penekanan sintaksis (Syntax Highlighting) diterapkan pada kode bila memungkinkan.

- Tombol interaktif UI ChatGPT seperti tombol jalankan dan tombol salin tidak disertakan dalam PDF.

4.3 Hipertautan Hanya Perlu Ada di Salah Satu Sisi PDF yang Dibagi

- Tidak perlu agar tautan ada di kedua sisi PDF yang tumpang tindih.

- Meskipun teks tautan sama, tautan aktual hanya perlu tetap ada pada file kemunculan pertama.

5. PDF

5.1 PDF Dibuat Berdasarkan Standar A4

- Ukuran kertas A4.

- Font, margin, jarak antar baris, dll., tetap konsisten.

- Mesin rendering Chromium/browser digunakan untuk tata letak akhir.

- Font monospaced digunakan untuk blok kode.

- Warna latar belakang, batas, dan padding internal diterapkan pada blok kode.

- Warna penekanan sintaksis dapat diterapkan pada kata kunci, string, angka, komentar, dll.

5.2 Jumlah Halaman per PDF Tetap

- Contoh: 4 halaman.

- Daripada memasukkannya setiap kali di GUI, nilai konstanta ditetapkan di bagian atas kode sumber.

- Batasan atas diterapkan terlebih dahulu pada jumlah halaman yang ditentukan.

- Jika blok kode melebihi jumlah halaman yang ditentukan, pembagian internal blok kode diperbolehkan.

- Hanya halaman yang ditentukan dibuat, dan konten yang tersisa akan dilanjutkan ke PDF berikutnya.

- Konten yang tumpang tindih juga disertakan dalam jumlah halaman maksimum yang ditentukan.

- Jika hasil rendering A4 nyata dari satu tabel melebihi jumlah halaman yang ditentukan, implementasi saat ini mungkin tidak dapat mempertahankan tabel tersebut sebagai satu blok, sehingga kesalahan mungkin terjadi di mana konten baru tidak masuk ke PDF.

- Oleh karena itu, ketika mengubah nilai PAGES_PER_PDF, pertimbangkan kemungkinan bahwa satu blok tabel, kode, atau rumus dapat melebihi jumlah halaman tersebut.

5.3 Tinggi Maksimum Area Tumpang Tindih Antara PDF Tetapkan sebagai Konstanta

- Contoh: 10mm.

- Pengguna harus dapat mengubah nilai konstanta di bagian atas kode sumber.

- Tinggi area tumpang tindih tidak boleh melebihi yang ditentukan.

5.4 Tumpang Tindih Sengaja Dibuat Saat Membagi PDF

- Area tumpang tindih aman di akhir 001.pdf

- Area yang sama disertakan di awal 002.pdf

- Tinggi maksimum area tumpang tindih mengikuti nilai konstanta pada 5.3.

- Tujuannya adalah untuk mencegah kehilangan batas dan memudahkan verifikasi.

5.5 Tinggi Area Tumpang Tindih Ditentukan Berdasarkan Tinggi Rendering A4 Aktual

- Bukan berdasarkan jumlah baris atau karakter pada tampilan browser.

- Dalam bagian akhir PDF sebelumnya, unit teks yang paling aman dan terbesar yang masuk dalam rentang tinggi tumpang tindih maksimum yang ditentukan di 5.3 akan diulang di awal PDF berikutnya.

- Untuk mengisi tinggi maksimum tumpang tindih yang ditentukan dengan tepat, kalimat atau blok yang terstruktur tidak akan dipotong secara paksa.

- Untuk blok yang terstruktur seperti tabel, kode, dan rumus, aturan pembagian pada bab 6 akan diterapkan terlebih dahulu.

- Jika blok kode dibagi pada batas halaman dan dilanjutkan di PDF berikutnya, bagian kode yang dilanjutkan tidak akan dihitung sebagai area tumpang tindih pada 5.3.

6. Pembagian Halaman

6.1 Prioritas Pemotongan yang Aman

- Jika memungkinkan:

- Akhir pesan

- Akhir paragraf

- Akhir kalimat

- Akhir baris biasa

- Jangan potong di dalam blok yang terstruktur.

6.2 Jangan Potong di Tengah Tabel

- Jika titik pembagian halaman berada di dalam tabel, maka seluruh tabel akan dipindahkan ke PDF berikutnya jika memungkinkan.

- Tabel ukuran sedang (1~10 baris): Putuskan sebelum awal tabel jika memungkinkan pada batas PDF atau pindahkan seluruh tabel ke PDF berikutnya.

- Tabel besar (11 baris atau lebih): Larang pengulangan tabel. Bagi secara alami berdasarkan baris, dan ulangi baris judul/header tabel di PDF berikutnya.

6.3 Pembuatan dan Pembagian Blok Kode

- Kode blok dirender sebagai satu kotak kode yang berbeda dari teks utama.

- Jika bahasa kode terdeteksi, nama bahasa seperti Python, JavaScript, dll. akan ditampilkan di bagian atas kotak kode.

- Warna pensanan sintaks diterapkan pada kode jika memungkinkan.

- Blok kode yang pendek atau sedang akan dipertahankan sebisa mungkin sebagai satu kotak.

- Jika seluruh blok kode tidak muat di ruang yang tersisa pada PDF saat ini, tetapi muat di PDF berikutnya, maka seluruh blok kode akan dibawa ke PDF berikutnya.

- Jika blok kode sendiri melebihi jumlah halaman maksimum PDF, pemisahan baris kode diperbolehkan.

- Blok kode tidak boleh dipotong di tengah baris.

- Blok kode yang dibagi akan mempertahankan warna latar belakang, batas, font monospaced, dan gaya pensanan sintaks yang sama pada PDF berikutnya.

- Kotak kode yang dilanjutkan di PDF berikutnya dapat menampilkan kembali nama bahasa atau menunjukkannya seperti "Python (lanjutan)".

6.4 Jangan memotong blok persamaan di tengah

- Persamaan diperlakukan sebagai satu blok.

- Namun, jika satu blok persamaan sendiri melebihi jumlah halaman maksimum PDF, pemisahan akan diizinkan dengan mengutamakan batas halaman dan unit persamaan yang aman atau berdasarkan baris tampilan.

6.5 Blok deskripsi gambar juga dipertahankan sebisa mungkin tanpa dipotong

- Gambar aktual diabaikan, tetapi teks deskripsi gambar dipertahankan sebagai satu blok jika memungkinkan.

6.6 Jumlah halaman PDF diperkirakan berdasarkan jumlah karakter, bukan hasil rendering A4 yang sebenarnya.

- Karena jumlah halaman dapat bervariasi meskipun jumlah karakter sama karena tabel, kode, dan persamaan.

- Jumlah halaman ditentukan setelah memeriksa rendering PDF yang sebenarnya.

7. Pembuatan PDF

7.1 Membuat beberapa PDF yang dibagi secara otomatis

- Contoh:

- percakapan_001.pdf

- percakapan_002.pdf

- percakapan_003.pdf

- …

- Setiap PDF dibuat berdasarkan jumlah halaman yang ditentukan.

7.2 PDF yang dibagi berisi tumpang tindih batas

- Untuk verifikasi dan pencegahan kehilangan.

- Tumpang tindih adalah perilaku normal yang disengaja.

7.3 Akhirnya, satu PDF lengkap juga dibuat

- Akhirnya, satu PDF lengkap juga dibuat

- Setelah pembuatan PDF yang dibagi selesai, penggabungan otomatis dilakukan.

- Apakah akan menyimpan PDF yang dibagi ditentukan oleh konstanta.

- Nilai defaultnya adalah tidak menyimpan PDF yang dibagi.

- PDF yang dibagi digabungkan tanpa modifikasi dan sesuai urutan, serta tumpang tindih batas dipertahankan di PDF akhir.

8. Penanganan Kesalahan

8.1 Jika terjadi kesalahan yang tidak dapat dipulihkan selama pengumpulan percakapan atau pembuatan PDF, pekerjaan akan dihentikan.

- PDF yang telah selesai dan bagian tempat kesalahan terjadi akan dicatat dalam pesan.

8.2 Tampilkan status progres di GUI

- Contoh:

- Jumlah pesan yang dikumpulkan saat ini

- Nomor bagian gulir

- Keberhasilan/kegagalan verifikasi kelanjutan

- Nomor PDF yang sedang dibuat

- Status progres penggabungan akhir

8.3 Catat log saat terjadi kesalahan

- Kegagalan kelanjutan pesan

- Kemungkinan kurangnya waktu tunggu pemuatan

- Kegagalan rendering PDF tertentu

- Kegagalan akses tautan, dll. agar dapat diverifikasi.

9. Persyaratan File Json

- Simpan file json per unit pesan dan per unit gulir

- Unit pesan digunakan untuk menyimpan percakapan dari tengah ke depan di masa mendatang.

- Buat judul_percakapan.json saat menyelesaikan pekerjaan terakhir.

- Buat folder temp di bawah folder kerja dan simpan unit pesan dan json gulir yang dibuat sebelumnya.

- Hanya refleksikan penyimpanan file pengaturan json per unit pesan dan per unit gulir saat ini.

10. Panggil Konstanta Utama dari File

PAGES_PER_PDF = 10 # Jumlah halaman maksimum per PDF **

OVERLAP_MAX_MM = 10.0 # Tinggi maksimum (mm) yang akan ditumpuk dengan PDF sebelumnya saat membagi PDF **

NAVIGATION_TIMEOUT_SEC = 180.0 # Batas waktu akses awal tautan berbagi (dalam detik) **

INITIAL_LOAD_WAIT_SEC = 10.0 # Waktu tunggu pemuatan layar obrolan setelah akses awal tautan berbagi (dalam detik) **

SCROLLER_SEARCH_TIMEOUT_SEC = 20.0 # Batas waktu pencarian seluruhnya untuk scroller (dalam detik) **

SCROLL_WAIT_SEC = 10.0 # Waktu tunggu stabilisasi DOM setelah menggulir ke atas/bawah (dalam detik) **

# Jika nilai lebih pendek,

# perubahan ketinggian DOM dan jumlah pesan setelah pengguliran mungkin belum stabil sebelum pengguliran berikutnya.

# Setiap kali layar digulir, dibutuhkan waktu 5 detik,

# jadi jumlah SCROLLER_SEARCH_TIMEOUT_SEC dan SCROLL_WAIT_SEC harus lebih kecil dari NAVIGATION_TIMEOUT_SEC.

# Sebelumnya 2 detik, kemudian 5 detik dan 10 detik. **

SCROLL_RATIO = 0.4 # Rasio perpindahan pengguliran terhadap tinggi layar (0.1~0.95) default 0.56 **

CONTINUITY_RETRY_COUNT = 3 # Jumlah percobaan ulang jika verifikasi kelanjutan pesan setelah pengguliran gagal **

STABLE_ROUNDS_TO_FINISH = 6 # Jumlah putaran stabil di mana tidak ada perubahan ketinggian DOM atau jumlah pesan

MAX_SCROLL_ROUNDS = 5000 # Batas atas putaran pengguliran (untuk mencegah loop tak terbatas)

KEEP_SPLIT_PDFS = True # Apakah PDF yang dipecah akan disimpan setelah digabung? **

SAVE_COLLECTED_JSON = True # Apakah pesan logis yang dikumpulkan akan disimpan sebagai JSON? **

VIEW_CHROMIUM = True # Apakah Chromium DevTools akan dibuka untuk debugging? (True: buka, False: tutup)

A4_MARGIN_TOP_MM = 15.0 # Margin atas PDF (mm)

A4_MARGIN_BOTTOM_MM = 15.0 # Margin bawah PDF (mm)

A4_MARGIN_LEFT_MM = 16.0 # Margin kiri PDF (mm)

A4_MARGIN_RIGHT_MM = 16.0 # Margin kanan PDF (mm)

BODY_FONT_PT = 10.5 # Ukuran font teks utama PDF (pt)

LINE_HEIGHT = 1.55 # Faktor pengali tinggi baris teks utama PDF

# Tampilan blok kode

CODE_FONT_PT = 9.2

CODE_SYNTAX_HIGHLIGHT = True

11. Membaca dan Menampilkan File Json

11.1 Membaca file Json langsung untuk membuat file PDF atau Word.

11.2 Membuat kotak centang Json di atas label tautan berbagi.

11.3 Jika kotak centang Json dipilih, tombol "Cari" akan diaktifkan di belakang kotak teks tautan berbagi untuk memuat file Json.

11.4 Memeriksa apakah file yang dimuat adalah file Json yang dapat digunakan.

11.5 Jika tombol "Buat PDF" ditekan, file Json akan digunakan untuk membuat file PDF.

11.6 Tombol "Buat Word" di sebelah tombol "Buat PDF" akan membuat file WORD.

11.7 Tombol file WORD juga dapat digunakan untuk membuat file WORD melalui tautan berbagi.

12. Pesan Pengguna

Untuk Word dan PDF, pesan pengguna akan ditampilkan secara terpisah dari pesan ChatGPT menggunakan kotak seperti Box.

99. Lainnya

99.1 Halaman ChatGPT tidak dicetak langsung dengan Ctrl+P.

- Untuk menghindari masalah di mana bagian akhir percakapan panjang tidak tercetak.

- Metode pembuatan PDF dari seluruh layar browser tidak digunakan.

99.2 Seluruh percakapan tidak dibuat menjadi HTML/PDF yang sangat besar sekaligus.

- Dalam percakapan yang sangat panjang, masalah memori/rendering dapat muncul kembali.

- Lebih stabil untuk membuat HTML independen dari data sumber yang diperlukan dan kemudian membuat PDF.

99.3 Pertimbangan kemungkinan perubahan struktur web ChatGPT

- Bagian pembuatan PDF relatif stabil,

- Namun, bagian pengumpulan data mungkin perlu dimodifikasi jika struktur DOM atau selektor pesan ChatGPT berubah.

99.4 Prioritas utama saat ini

- Prioritas 1: Mencegah hilangnya pesan

- Prioritas 2: Mempertahankan urutan pesan

- Peringkat 3: Pengamanan Duplikasi Batas

- Peringkat 4: Pelestarian Blok Tabel, Kode, dan Rumus

- Peringkat 5: Pembagian Halaman A4 yang Tepat

- Peringkat 6: Penggabungan PDF Akhir

로그인한 회원만 댓글 등록이 가능합니다.

개발한당

KR | ID | EN
  • IDR
  • KOR
7.52 ▼ -0.01

2026.10.09 KEB 하나은행 고시회차 1858회

다가오는 한인 행사일정

  • 등록 된 일정이 없어요!