Program
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.

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 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.

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.

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.

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 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-python3. 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ı.

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ı.

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.
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.
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.

