Ana içeriğe atla

Mistral Medium 3 Eğitimi: Aracısal Uygulamalar Oluşturma

DataLab ortamında LangGraph, Tavily, Python aracı ve Mistral AI API kullanarak çok araçlı bir aracı uygulama geliştirin.
Güncel 3 Eki 2026  · 5 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Mistral Medium 3 birçok alternatife kıyasla önemli ölçüde daha düşük bir fiyata yüksek performans sunar. Şu anda Mistral AI API üzerinden kullanılabilir; yalnızca milyon başına 0,40 $ girdi belirteci ve milyon başına 2 $ çıktı belirteci fiyatıyla sunulmaktadır. Bu fiyatlandırma, gerek API gerekse kendi altyapınızda dağıtılan sistemlerde DeepSeek v3 gibi önde gelen rakipleri geride bırakır. Özetle, çeşitli kıyaslamalarda Claude Sonnet 3.7 performansının %90’ına kadarını elde ederken maliyetlerde ciddi tasarruf sağlayabilirsiniz.

Bu eğitimde, Mistral API’yi nasıl kuracağımızı ve modele erişmek için Python istemcisini nasıl kullanacağımızı öğreneceğiz. Ardından, LangGraph kullanarak web araması ve Python REPL aracını kullanan yanıtlar üreten bir aracısal uygulama oluşturacağız.

Mistral Medium 3 ile Aracısal Bir Uygulama Oluşturma öne çıkan görsel

Görsel: Yazar

Mistral Medium 3 ile Başlarken

Bu bölümde, API anahtarını nasıl oluşturacağımızı, bir ortam değişkeni olarak nasıl kaydedeceğimizi ve ardından metin oluşturma ve görsel anlama için Mistral Medium 3’e erişmek amacıyla Python istemcisini nasıl kullanacağımızı öğreneceğiz.

1. Mistral AI API anahtarını oluşturma

La Plateforme’a kaydolun: Mistral AI ve ardından Faturalandırma bölümüne giderek kredi/banka kartı ile 5 $ kredi yükleyin. Bu proje için sadece birkaç sent yeterli olacaktır. Sonrasında, yeni API anahtarı oluşturmak için API keys sekmesine gidin. 

2. Ortamı ayarlama

DataLab’de ortam değişkeni ayarlamak oldukça basittir. "Environment" sekmesine gidin, "Environment Variables" seçeneğini seçin ve "MISTRAL_API_KEY" adında yeni bir değişkeni API anahtarınızla birlikte ekleyin. Değişiklikleri kaydettikten sonra bağlandığından emin olun.

Datalab'de ortam değişkeni ayarlama

DataLab’de yeni bir Python hücresi oluşturun ve Mistral AI python paketini kurun. 

!pip install -U mistralai 

3. Metin oluşturma

Herhangi bir kod yazmadan önce, Models Overview sayfasını ziyaret ederek Mistral Medium 3 API uç nokta adlarını bulmak önemlidir. Belgelere göre, uç nokta adının mistral-medium-latest olduğu görülüyor.

Yeni model adını öğrenmek için dokümanları okuma.

Kaynak: Models Overview | Mistral AI Large Language Models

Sonraki adımda, API anahtarını kullanarak bir Mistral AI istemcisi oluşturacak ve bir kullanıcı sorgusuna akışlı yanıt üreteceğiz. 

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

Yanıt oldukça isabetli ve neredeyse hiçbir maliyeti yok. 

Mistral AI Tarafından Üretilen Çıktı

4. Görsel anlama

Modelin çok kipli yeteneklerini test etmek için DataCamp blogunun ana sayfasının ekran görüntüsünü alıp kullanıcı istemiyle birlikte modele vereceğiz.

DataCamp blog sayfasının ekran görüntüsü

Kaynak: Blog | Veri Bilimi Makaleleri | DataCamp

Model görsel dosyasına doğrudan erişemediğinden, önce görseli yükleyip Base64 kodlu bir dizeye dönüştürmemiz gerekir.

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)

Şimdi Base64 ile kodlanmış görseli bir kullanıcı sorgusuyla birlikte Mistral AI sohbet tamamlama istemcisine göndereceğiz.

# 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, görseli başarıyla yorumlayıp Donald Trump tarzında bir yanıt üreterek çok kipli anlama yeteneklerini göstermektedir. 

Mistral AI Tarafından Üretilen Çıktı

Mistral Medium 3 ile Aracısal Bir Uygulama Oluşturma

Bu projede, LangGraph ile birlikte Mistral Medium 3’ü kullanarak aracısal bir uygulama geliştireceğiz. Bu uygulama web araması için Tavily API’yi ve kullanıcı istemlerine dayalı kod yürütme için Python REPL’yi kullanacaktır.

LangGraph’e yeni misiniz? Sorun değil! Çerçeve hakkında bilmeniz gereken her şeyi öğrenmek için LangGraph Eğitimimizi takip edin.

1. Tavily API’yi ayarlama

Uygulamaya başlamadan önce, bir hesap oluşturup bir API anahtarı üreterek Tavily AI’yi ayarlamamız gerekiyor. Süreç basittir ve ödeme bilgileri veya kredi kartı sağlamanız gerekmez.

API anahtarını aldıktan sonra, önceki bölümde gösterildiği gibi yerel olarak veya DataLab kurulumunuzda TAVILY_API_KEY adlı bir ortam değişkeni olarak kaydedin.

2. Python paketlerini kurma

Sonraki adımda, LangChain ekosistemini kullanarak araçlar ve ajanlar oluşturmak için gerekli Python paketlerini kuracağız.

%%capture!pip install -U \    mistralai \    langchain langchain-mistralai \    langchain-experimental \    langgraph  \    tavily-python

3. LLM istemcisi oluşturma

Model adını, sıcaklığı (temperature) belirterek ve akışlı yanıtları etkinleştirerek LangChain’in ChatMistralAI büyük dil modeli (LLM) istemcisini oluşturacağız. 

from langchain_mistralai import ChatMistralAIllm = ChatMistralAI(    model="mistral-medium-latest",       temperature=0.2,                     streaming=True          )

4. Araçları başlatma

Şimdi ajan için araçları ayarlayacağız. Araçları tek tek oluşturmak yerine, LangChain ekosisteminden Tavily Search ve Python REPL gibi hazır araçları kullanabiliriz. 

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. Bir Ajan ayarlama

LLM istemcisi ve araçlar hazır olduğuna göre, şimdi LangGraph kullanarak React Agent oluşturabiliriz.

from langgraph.prebuilt import create_react_agentagent = create_react_agent(    model=llm,           tools=tools,      )    

LangGraph Studio, LangGraph çerçevesi için görsel bir geliştirme ortamıdır; daha fazla bilgi edinmek için LangGraph Studio Rehberi: Kurulum, Yapılandırma, Kullanım Alanlarını takip edin. 

6. Araç adlarını çıkarma

Ajanı çalıştırmadan önce, ajanın yanıt üretimi sırasında kullanılan araçların adlarını çıkarmak için bir Python işlevi tanımlayacağız. Bu işlev, hangi araçların çağrıldığını belirlememize yardımcı olacaktır.

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, LangGraph çerçevesi için görsel bir geliştirme ortamıdır; daha fazla bilgi edinmek için LangGraph Studio Rehberi: Kurulum, Yapılandırma, Kullanım Alanlarını takip edin.

7. Ajanı test etme 

Ajanı son dakika haberleriyle ilgili bir soru sorarak test edelim. 

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)

Ajan, son dakika haberleri hakkında bir yanıt üretmek için Tavily Search aracını kullandı.

Aracısal Uygulama Tarafından Üretilen Çıktı

Sonraki adımda, ajandan Python REPL aracını kullanarak Python kodu üretmesini ve yürütmesini isteyerek test edelim.

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)

Ajan, kod üretimi için Mistral Medium 3’ü ve kod yürütme için Python REPL’yi kullandı.

Aracısal Uygulama Tarafından Üretilen Çıktı

Son olarak, ajanın her iki aracı da sırasıyla kullanmasını gerektiren bir sorguyu test edelim.

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)

Ajan, altın fiyatı verilerini elde etmek için Tavily Search’ü, veri görselleştirme için kod üretmek üzere Mistral Medium 3’ü ve kodu yürütmek için Python REPL’yi kullanacaktır. Sonuç, kullanılan araçların bir özetiyle birlikte son derece doğru bir grafik içerecektir.

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.

Web araması ve Python Repl aracı kullanılarak oluşturulan Aracısal Uygulama Çıktısı

Kodu çalıştırırken herhangi bir sorunla karşılaşırsanız, ek yönlendirme için Mistral Medium 3 — DataLab Not Defterine başvurun.

Daha güçlü ve uygulaması kolay bir aracı uygulamayı Haystack ekosistemiyle oluşturabilirsiniz. Daha fazla bilgi için şu eğitimleri takip edin: Haystack AI Eğitimi: Aracısal İş Akışları Oluşturma.

Sonuç

Mistral AI API ile denemeler yaptıktan ve çeşitli uygulamaları test etmek için ajanlar oluşturduktan sonra en dikkat çekici yönlerden biri, 161.075 belirteç kullanmış olmama rağmen bana tek bir dolar bile maliyeti olmamasıydı. Model uygun fiyatlı, hızlı, doğru ve kurulumu inanılmaz derecede kolay. DeepSeek gibi diğer pahalı API’lara kıyasla benzer işlevsellik sunarken harika bir alternatif oluşturuyor.

Yapay zeka dünyası açıkça daha küçük, daha hızlı, daha doğru ve maliyet etkin modellere doğru ilerliyor; bu da özellikle girişimler ve küçük-orta ölçekli işletmeler (KOBİ’ler) için umut verici bir eğilim. Bu kuruluşlar sıklıkla LLM sağlayıcılarına büyük ölçüde bağımlıdır ve bu modeller daha uygun fiyatlı hale geldikçe daha yüksek kâr marjlarından önemli ölçüde faydalanacaklardır.

Kendi LLM’lerinizi, en yeni derin öğrenme ve NLP teknikleriyle PyTorch ve Hugging Face kullanarak oluşturmak için Geniş Dil Modelleri Geliştirme beceri yolunu takip edin.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Sertifikalı bir veri bilimcisi olarak, yenilikçi makine öğrenimi uygulamaları oluşturmak için en son teknolojileri kullanmaya büyük ilgi duyuyorum. Konuşma tanıma, veri analizi ve raporlama, MLOps, konuşma yapay zekası ve NLP alanlarında güçlü bir geçmişe sahip olarak, gerçek bir etki yaratabilecek akıllı sistemler geliştirme becerilerimi geliştirdim. Teknik uzmanlığımın yanı sıra, karmaşık kavramları açık ve özlü bir dille ifade etme yeteneğine sahip, becerikli bir iletişimciyim. Sonuç olarak, veri bilimi konusunda aranan bir blog yazarı oldum ve giderek büyüyen veri profesyonelleri topluluğuyla görüşlerimi ve deneyimlerimi paylaşıyorum. Şu anda, içerik oluşturma ve düzenlemeye odaklanıyorum. Büyük dil modelleriyle çalışarak, hem işletmelerin hem de bireylerin verilerinden en iyi şekilde yararlanmalarına yardımcı olabilecek güçlü ve ilgi çekici içerikler geliştiriyorum.

Konular
Büyük Dil Modelleri
Yapay Zekâ Aracıları
Yapay Zeka

En İyi DataCamp Kursları

Program

Geliştiriciler için Yardımcı Yapay Zeka Mühendisi

26 sa
API'leri ve açık kaynak kütüphanelerini kullanarak yapay zekayı yazılım uygulamalarına nasıl entegre edeceğinizi öğrenin. Yapay Zeka Mühendisi olma yolculuğunuza bugün başlayın!
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör