Last chance! 50% off DataCamp Premium
Sale ends in
Claude 3.7 Sonnet adalah model AI terbaru dari Anthropic, menawarkan kemampuan penalaran yang ditingkatkan melalui Thinking Mode yang baru. Model ini dapat memproses konteks hingga 200K token, sehingga ideal untuk analisis riset yang kompleks.
Dalam tutorial ini, saya akan menjelaskan langkah demi langkah cara membangun Research Paper Analyzer menggunakan Claude 3.7 Sonnet yang mampu:
Kita juga akan mengintegrasikan Thinking Mode Claude 3.7 Sonnet dengan Gradio agar pengguna dapat mengunggah beberapa makalah riset dan menerima wawasan terstruktur.
Kita akan fokus pada bagian praktik langsung di blog ini—jika Anda hanya mencari gambaran umum, saya merekomendasikan artikel tentang Claude 3.7 Sonnet.
Dan jika Anda mencari demo yang jelas, simak video tutorial API Claude 3.7 Sonnet kami dan bangun asisten riset multimodal. Video kami akan memandu Anda tentang cara mengakses penyiapan Anthropic API, mengekstrak dan memproses PDF menggunakan pemrosesan dokumen PyPDF2 menggunakan thinking mode Claude 3.7, dan membangun asisten riset nyata dengan Gradio. Anda juga dapat melihat model Claude terbaru, Claude Sonnet 4.5, dan Claude Agent SDK.
Kita akan mengembangkan Research Paper Analyzer berbasis Gradio yang memungkinkan pengguna untuk:
Untuk mengoptimalkan biaya API Claude 3.7 Sonnet, kita perlu menyelaraskan penggunaannya dengan kebutuhan proyek, karena token input berharga $3/M dan token output, termasuk Thinking Mode, berharga $15/M.
Kita perlu menekan biaya dengan menggunakan prompt caching, pemrosesan batch, dan mode streaming untuk respons panjang. Kita bahkan dapat mengoptimalkan Thinking Mode dengan menetapkan anggaran token yang lebih rendah (mulai dari 1.024 token) dan hanya meningkatkannya bila perlu.
Anda dapat mempelajari lebih lanjut tentang optimalisasi biaya API melalui dokumentasi resmi Anthropic.
Sebelum mulai, mari kita ulas apa itu thinking mode, jika Anda belum familiar. Thinking Mode adalah fitur baru di Claude 3.7 Sonnet yang memungkinkan penalaran langkah demi langkah sebelum menghasilkan jawaban akhir. Ini memungkinkan model untuk:
Singkatnya, cara kerjanya seperti ini:
Sebelum mulai, kita perlu menyiapkan kunci API Anthropic:
1. Mulailah dengan masuk ke konsol Anthropic: https://console.anthropic.com/
2. Klik Get API Keys.

3. Anda akan dialihkan ke tab API Keys. Klik Create API Key dan masukkan nama kunci Anda.

4. Salin kunci ini dan simpan untuk referensi mendatang.
5. Sekarang, tambahkan kredit ke akun penagihan Anda, di bawah tab Billing. Cukup klik buy credits dan tambahkan sekitar $5 ke akun Anda (cukup untuk proyek ini).
Sekarang kita sudah memiliki API Key. Selanjutnya pastikan dependensi yang diperlukan sudah terpasang.
pip install anthropic gradio PyPDF2
Setelah terpasang, impor pustaka yang diperlukan:
import anthropic
import PyPDF2
import os
import gradio as gr
Setelah semua pustaka yang diperlukan diimpor, berikutnya kita menyiapkan API Claude.
Jika Anda menggunakan Google Colab, Anda dapat menyimpan kunci API di tab Secrets lalu menggunakan fungsi get() untuk mengaksesnya. Jika tidak, Anda dapat meneruskan kunci API langsung ke kode Anda (tidak direkomendasikan).
Kita kemudian menginisialisasi klien Claude menggunakan pustaka Anthropic dan memasukkan kunci API.
# If using Google Colab Secrets
from google.colab import userdata
API_KEY = userdata.get('claude-3.7-sonnet')
client = anthropic.Anthropic(
api_key=API_KEY,
)
Bagian penyiapan selesai. Berikutnya, kita mengerjakan bagian ekstraksi teks.
Kita akan menggunakan PyPDF2 untuk mengekstrak teks dari file PDF yang diunggah. Claude 3.7 Sonnet hanya menerima teks dan gambar sebagai input. Jadi, kita mengekstrak teks terlebih dahulu untuk pemrosesan yang efisien sambil memaksimalkan kemampuan Claude 3.7 Sonnet dengan Thinking Mode.
# Function to extract text from a PDF file
def extract_text_from_pdf(pdf_path):
"""Extracts text from a given PDF file."""
text = ""
with open(pdf_path, "rb") as f:
reader = PyPDF2.PdfReader(f)
for page in reader.pages:
text += page.extract_text() + "\n"
return text.strip()
Fungsi extract_text_from_pdf() membaca file PDF, mengekstrak teks dari setiap halaman menggunakan PyPDF2.PdfReader(), dan mengembalikan gabungan teks sebagai string.
Sekarang setelah kita memiliki teks yang diekstrak, kita lanjut menggunakan thinking dan streaming mode Claude 3.7 Sonnet untuk menganalisis beberapa makalah dan menghasilkan ide riset terstruktur.
Mode streaming memastikan penanganan respons besar secara efisien dengan mengirimkan hasil secara progresif, mengurangi waktu tunggu, dan mencegah timeout API. Thinking mode meningkatkan penalaran kompleks dengan memungkinkan model menghasilkan pemikiran internal terstruktur sebelum merumuskan jawaban akhir, sehingga menjamin wawasan yang beralasan dengan baik.
# Function to analyze research papers with streaming
def analyze_papers_streaming(paper_texts, paper_count):
"""Uses Claude 3.7 Sonnet with Thinking Mode in streaming mode to analyze papers, find drawbacks, and generate a research project."""
formatted_papers = "\n\n".join([f"### Paper {i+1}:\n{paper}" for i, paper in enumerate(paper_texts)])
prompt = f"""
You are an AI research assistant. You have been provided with {paper_count} research papers.
Your task is to analyze these papers and perform the following:
1. **Summarize each paper** with its core contributions and findings.
2. **Identify key drawbacks** of each paper, focusing on limitations, gaps, or areas needing improvement.
3. **Find interconnections and citations** between the papers—what ideas, methods, or datasets do they share?
4. **Propose a novel research idea** that addresses a major limitation across these papers.
- Suggest how techniques from different papers can be combined to solve a problem.
- Ensure the idea is practical and feasible for further research.
- Justify why this approach is promising.
Below are the research papers
{formatted_papers}
"""
results = {"thinking": "", "research_idea": ""}
with client.messages.stream(
model="claude-3-7-sonnet-20250219",
max_tokens=25000,
thinking={
"type": "enabled",
"budget_tokens": 16000 # Large budget for deep reasoning
},
messages=[{"role": "user", "content": prompt}]
) as stream:
current_block_type = None
for event in stream:
if event.type == "content_block_start":
current_block_type = event.content_block.type
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
results["thinking"] += event.delta.thinking
elif event.delta.type == "text_delta":
results["research_idea"] += event.delta.text
elif event.type == "message_stop":
break
return results["thinking"], results["research_idea"]
Fungsi analyze_papers_streaming() melakukan langkah-langkah berikut:
client.messages.stream() untuk mengirim permintaan ke Claude 3.7 Sonnet. Ini mengaktifkan thinking mode dengan budget_tokens=16000 dan max_tokens=25000 untuk panjang respons yang diperluas.content_block_start untuk menandai awal blok respons. Saat model menghasilkan keluaran, peristiwa thinking_delta berisi langkah penalaran perantara, sementara text_delta menyediakan wawasan riset akhir. Proses berlanjut hingga peristiwa message_stop menandakan respons selesai.Anda dapat mempelajari lebih lanjut tentang penyempurnaan teknik prompting untuk extended thinking di sini.
Sekarang logika utama sudah dibangun, kita lanjut mengintegrasikannya ke Gradio, sehingga pengguna dapat mengunggah makalah riset dan menerima wawasan terstruktur.
# Gradio UI function
def gradio_interface(pdfs):
paper_texts = [extract_text_from_pdf(pdf.name) for pdf in pdfs]
paper_count = len(paper_texts) # Count number of provided papers
thinking, research_idea = analyze_papers_streaming(paper_texts, paper_count)
return thinking, research_idea
# Set up the Gradio app
demo = gr.Interface(
fn=gradio_interface,
inputs=gr.File(file_types=[".pdf"], label="Upload Research Papers", file_count="multiple"),
outputs=[gr.Textbox(label="Thinking Process"), gr.Textbox(label="Research Idea")],
title="Claude 3.7 Sonnet - Powered Research Paper Analyzer",
description="Upload multiple research papers to extract insights, identify key limitations, and generate a novel research idea."
)
if __name__ == "__main__":
demo.launch(debug=True)
Kode di atas menyiapkan UI Gradio di mana pengguna dapat mengunggah beberapa PDF, yang kemudian diproses untuk mengekstrak teks, menganalisis wawasan utama, dan menghasilkan ide riset baru menggunakan thinking dan streaming mode.

Dalam tutorial ini, kita membangun Research Paper Analyzer bertenaga AI menggunakan Claude 3.7 Sonnet, yang memungkinkan peneliti mengekstrak wawasan secara efisien, mengidentifikasi keterbatasan, dan menghasilkan ide riset baru dari beberapa makalah. Dengan menggunakan thinking mode, model melakukan penalaran mendalam, menjadikannya alat yang efektif untuk tinjauan pustaka dan sintesis riset.
Saya adalah Google Developers Expert di ML (Gen AI), Kaggle 3x Expert, dan Women Techmakers Ambassador dengan pengalaman lebih dari 3 tahun di bidang teknologi. Saya ikut mendirikan startup health-tech pada 2020 dan sedang menempuh studi magister ilmu komputer di Georgia Tech dengan spesialisasi machine learning.
Belajar AI dengan kursus-kursus ini!
Program
Kursus
Program

blogs
Javier Canales Luna
14 mnt
blogs
Hugo Bowne-Anderson
13 mnt
blogs
Dario Radečić
15 mnt
blogs
David Woods
13 mnt