Program
Mistral Medium 3 menawarkan performa tinggi dengan harga yang jauh lebih murah dibanding banyak alternatif. Saat ini tersedia melalui Mistral AI API, dengan harga hanya $0,40 per satu juta token input dan $2 per satu juta token output. Harga ini mengungguli para pesaing terkemuka seperti DeepSeek v3, baik di API maupun sistem self-hosted. Singkatnya, Anda bisa meraih hingga 90% performa Claude Sonnet 3.7 pada berbagai tolok ukur sambil memangkas biaya secara signifikan.
Dalam tutorial ini, kita akan mempelajari cara menyiapkan Mistral API dan menggunakan klien Python untuk mengakses model. Setelah itu, kita akan menggunakan LangGraph untuk membangun aplikasi berbasis agen yang memanfaatkan penelusuran web dan alat Python REPL untuk menghasilkan jawaban.

Gambar oleh Penulis
Mulai Menggunakan Mistral Medium 3
Pada bagian ini, kita akan mempelajari cara membuat kunci API, menyimpannya sebagai variabel lingkungan, lalu menggunakan klien Python untuk mengakses Mistral Medium 3 guna menghasilkan teks dan memahami gambar.
1. Membuat kunci Mistral AI API
Daftar ke La Plateforme: Mistral AI lalu buka bagian Billing dan isi kredit $5 menggunakan kartu kredit/debit. Anda hanya membutuhkan beberapa sen untuk proyek ini. Setelah itu, buka tab API keys untuk membuat kunci API baru.
2. Menyiapkan environment
Menyiapkan variabel lingkungan di DataLab sangat mudah. Masuk ke tab "Environment", pilih opsi "Environment Variables", lalu tambahkan variabel baru bernama "MISTRAL_API_KEY" beserta kunci API Anda. Setelah menyimpan perubahan, pastikan untuk menghubungkannya.

Di DataLab, buat sel Python baru dan pasang paket python Mistral AI.
!pip install -U mistralai 3. Generasi teks
Sebelum menulis kode, penting untuk menemukan nama endpoint kunci API Mistral Medium 3 dengan mengunjungi halaman Models Overview. Berdasarkan dokumentasi, endpoint tampaknya bernama mistral-medium-latest.

Sumber: Models Overview | Mistral AI Large Language Models
Selanjutnya, kita akan membuat klien Mistral AI menggunakan kunci API dan menghasilkan respons streaming untuk kueri pengguna.
import osfrom mistralai import Mistralapi_key = os.environ["MISTRAL_API_KEY"]model = "mistral-medium-latest"client = Mistral(api_key=api_key)stream_response = client.chat.stream( model = model, messages = [ { "role": "user", "content": "What is the best course to take from DataCamp?", }, ])for chunk in stream_response: print(chunk.data.choices[0].delta.content, end="" )Responsnya sangat akurat dan biayanya praktis nol.

4. Pemahaman gambar
Untuk menguji kemampuan multimodal model, kita akan mengambil tangkapan layar halaman depan blog DataCamp dan memberikannya kepada model bersama dengan prompt pengguna.

Sumber: Blog | Artikel Ilmu Data | DataCamp
Karena model tidak dapat mengakses berkas gambar secara langsung, kita perlu memuat gambar terlebih dahulu dan mengonversinya menjadi string yang dikodekan Base64.
import base64import requestsdef encode_image(image_path): """Encode the image to base64.""" try: with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode('utf-8') except FileNotFoundError: print(f"Error: The file {image_path} was not found.") return None except Exception as e: # Added general exception handling print(f"Error: {e}") return None# Path to your imageimage_path = "datacamp_fp.png"# Getting the base64 stringbase64_image = encode_image(image_path)Sekarang kita akan mengirim gambar yang dikodekan Base64 beserta kueri pengguna ke klien chat completion Mistral AI.
# Define the messages for the chatmessages = [ { "role": "user", "content": [ { "type": "text", "text": "Explain the image in a Donald Trump style." }, { "type": "image_url", "image_url": f"data:image/png;base64,{base64_image}" } ] }]stream_response = client.chat.stream( model = model, messages = messages)for chunk in stream_response: print(chunk.data.choices[0].delta.content, end="" )Model berhasil menafsirkan gambar dan menghasilkan respons dalam gaya Donald Trump, menunjukkan kemampuan pemahaman multimodalnya.

Membangun Aplikasi Agen dengan Mistral Medium 3
Dalam proyek ini, kita akan menggunakan Mistral Medium 3 dengan LangGraph untuk membangun aplikasi agen. Aplikasi ini akan menggunakan Tavily API untuk penelusuran web dan Python REPL untuk mengeksekusi kode berdasarkan prompt pengguna.
Baru di LangGraph? Tidak masalah! Ikuti Tutorial LangGraph dan pelajari semua yang perlu Anda ketahui tentang framework ini.
1. Menyiapkan Tavily API
Sebelum masuk ke implementasi, kita perlu menyiapkan Tavily AI dengan membuat akun dan menghasilkan kunci API. Prosesnya sederhana, dan Anda tidak perlu memberikan detail pembayaran atau kartu kredit.
Setelah memiliki kunci API, simpan sebagai variabel lingkungan bernama TAVILY_API_KEY baik secara lokal maupun di pengaturan DataLab Anda, seperti yang ditunjukkan pada bagian sebelumnya.
2. Memasang paket Python
Berikutnya, kita akan memasang paket Python yang diperlukan untuk membuat tools dan agen menggunakan ekosistem LangChain.
%%capture!pip install -U \ mistralai \ langchain langchain-mistralai \ langchain-experimental \ langgraph \ tavily-python3. Membuat klien LLM
Kita akan membuat klien model bahasa besar (LLM) ChatMistralAI dari LangChain dengan menentukan nama model, temperature, dan mengaktifkan respons streaming.
from langchain_mistralai import ChatMistralAIllm = ChatMistralAI( model="mistral-medium-latest", temperature=0.2, streaming=True )4. Inisialisasi tools
Sekarang, kita akan menyiapkan tools untuk agen. Alih-alih membuat tools secara manual, kita bisa menggunakan tools siap pakai seperti Tavily Search dan Python REPL dari ekosistem LangChain.
from langchain_community.tools import TavilySearchResultsfrom langchain_experimental.tools.python.tool import PythonREPLToolsearch_tool = TavilySearchResults(max_results=5, include_answer=True)code_tool = PythonREPLTool()tools = [search_tool, code_tool]5. Menyiapkan Agen
Dengan klien LLM dan tools siap, kini kita dapat membuat React Agent menggunakan LangGraph.
from langgraph.prebuilt import create_react_agentagent = create_react_agent( model=llm, tools=tools, ) LangGraph Studio adalah lingkungan pengembangan visual untuk framework LangGraph; ikuti Panduan LangGraph Studio: Instalasi, Penyiapan, Use Case untuk mempelajarinya lebih lanjut.
6. Mengekstrak nama tool
Sebelum mengeksekusi agen, kita akan mendefinisikan fungsi Python untuk mengekstrak nama-nama tool yang digunakan selama proses generasi respons agen. Fungsi ini membantu mengidentifikasi tool mana saja yang dipanggil.
def extract_tool_names(conversation: dict) -> list[str]: """ Given a conversation dict with a 'messages' list (where each message may be a dict or a Pydantic model), extract all unique tool names used in any tool call. """ tool_names = set() for msg in conversation.get('messages', []): # 1) Try direct attribute access (for Pydantic models) calls = [] if hasattr(msg, 'tool_calls'): calls = getattr(msg, 'tool_calls') or [] # 2) If that fails, the message might be a dict elif isinstance(msg, dict): calls = msg.get('tool_calls') # also check nested in additional_kwargs if not calls and isinstance(msg.get('additional_kwargs'), dict): calls = msg['additional_kwargs'].get('tool_calls') # 3) Finally, check additional_kwargs on objects else: ak = getattr(msg, 'additional_kwargs', None) if isinstance(ak, dict): calls = ak.get('tool_calls', []) # Normalize to list calls = calls or [] # Extract names for call in calls: # dict-style tool call if isinstance(call, dict): # top-level 'name' if 'name' in call: tool_names.add(call['name']) # nested under 'function' elif 'function' in call and isinstance(call['function'], dict): fn = call['function'] if 'name' in fn: tool_names.add(fn['name']) return sorted(tool_names)LangGraph Studio adalah lingkungan pengembangan visual untuk framework LangGraph; ikuti Panduan LangGraph Studio: Instalasi, Penyiapan, Use Case untuk mempelajarinya lebih lanjut.
7. Menguji agen
Mari uji agen dengan menanyakan pertanyaan tentang berita terkini.
question = "What are the top 5 breaking news stories?"def run_agent(question): result = agent.invoke( { "messages": [ {"role": "user", "content": question} ] } ) tool_name = extract_tool_names(result) # The LLM’s final answer is always in the last message raw_answer = result["messages"][-1].content clean_text = "".join(part for part in raw_answer if isinstance(part, str)) return tool_name, clean_texttool_name, clean_text = run_agent(question)print("Tool used ⫸", tool_name, "\n")print(clean_text)Agen telah menggunakan tool Tavily Search untuk menghasilkan respons tentang berita terkini.

Berikutnya, mari uji tool Python REPL dengan meminta agen untuk membuat dan mengeksekusi kode Python.
question = "Write a code to display the stars in a triangle. Please execute the code too."tool_name, clean_text = run_agent(question)print("Tool used ⫸", tool_name, "\n")print(clean_text)Agen telah menggunakan Mistral Medium 3 untuk pembuatan kode dan Python REPL untuk eksekusi kode.

Terakhir, mari uji kueri yang mengharuskan agen menggunakan kedua tool secara berurutan.
question = "Get the latest gold price data for the past 7 days and use it to generate a line plot"tool_name, clean_text = run_agent(question)print("Tool used ⫸", tool_name, "\n")print(clean_text)Agen akan menggunakan Tavily Search untuk mendapatkan data harga emas, Mistral Medium 3 untuk menghasilkan kode visualisasi data, dan Python REPL untuk mengeksekusi kode tersebut. Hasilnya akan mencakup bagan yang sangat akurat beserta ringkasan tool yang digunakan.
Tool used ⫸ ['Python_REPL', 'tavily_search_results_json'] The code generates a line plot showing the gold price per gram in USD over the last 7 days, with the x-axis representing dates and the y-axis representing the gold price. The plot includes markers for each data point, a title, labeled axes, a grid, and rotated x-axis labels for better readability.
Jika Anda mengalami kendala saat menjalankan kode, lihat Mistral Medium 3 — DataLab Notebook untuk panduan tambahan.
Anda dapat menggunakan ekosistem Haystack untuk membangun aplikasi agen yang lebih kuat dan mudah diimplementasikan. Ikuti tutorial berikut untuk mempelajari lebih lanjut: Tutorial Haystack AI: Membangun Alur Kerja Agen.
Kesimpulan
Setelah bereksperimen dengan Mistral AI API dan membangun agen untuk menguji berbagai aplikasi, salah satu hal paling mencolok adalah biayanya tidak mencapai satu dolar pun—bahkan setelah menggunakan 161.075 token. Model ini terjangkau, cepat, akurat, dan sangat mudah disiapkan. Ini menjadi alternatif yang bagus untuk API mahal lainnya, seperti DeepSeek, sambil menawarkan fungsionalitas yang sebanding.
Lanskap AI jelas bergerak menuju model yang lebih kecil, lebih cepat, lebih akurat, dan hemat biaya, yang merupakan tren menjanjikan, terutama bagi startup dan usaha kecil-menengah (UKM). Organisasi-organisasi ini sering sangat bergantung pada penyedia LLM, dan seiring model menjadi lebih terjangkau, mereka akan sangat diuntungkan melalui margin laba yang lebih tinggi.
Ikuti skill track Developing Large Language Models untuk membangun LLM Anda sendiri menggunakan PyTorch dan Hugging Face serta teknik deep learning dan NLP terbaru.
Sebagai data scientist tersertifikasi, saya bersemangat memanfaatkan teknologi mutakhir untuk menciptakan aplikasi machine learning yang inovatif. Dengan latar belakang kuat di pengenalan ucapan, analisis dan pelaporan data, MLOps, conversational AI, dan NLP, saya mengasah keterampilan dalam mengembangkan sistem cerdas yang berdampak nyata. Selain keahlian teknis, saya juga komunikator andal yang mampu menyederhanakan konsep kompleks menjadi bahasa yang jelas dan ringkas. Karena itu, saya menjadi blogger yang dicari di bidang data science, membagikan wawasan dan pengalaman kepada komunitas profesional data yang terus berkembang. Saat ini, saya berfokus pada pembuatan dan penyuntingan konten, bekerja dengan large language model untuk mengembangkan konten yang kuat dan menarik agar membantu bisnis dan individu memaksimalkan data mereka.

