Blog'a Dön
Yapay Zeka20 dk2.8K görüntülenme

LangChain ile AI Agent Geliştirme

LangChain framework'ü kullanarak akıllı AI agent'lar nasıl geliştirilir? RAG, memory ve tool calling örnekleri.

F

Fribe.co Ekibi

AI Uzmanları

28 Kasım 2024

LangChain Nedir?

LangChain, LLM tabanlı uygulamalar geliştirmek için kullanılan bir framework'tür. AI agent'lar, RAG sistemleri ve chatbot'lar oluşturmayı kolaylaştırır.

LangChain ile karmaşık AI uygulamalarını modüler bir şekilde geliştirebilirsiniz.

Temel Kavramlar

1. Chains

Birden fazla LLM çağrısını zincirler:

📘TypeScript
1import { ChatOpenAI } from "@langchain/openai";
2import { ChatPromptTemplate } from "@langchain/core/prompts";
3import { StringOutputParser } from "@langchain/core/output_parsers";
4
5const model = new ChatOpenAI({ model: "gpt-4" });
6
7const prompt = ChatPromptTemplate.fromMessages([
8 ["system", "Sen profesyonel bir yazar olarak {style} tarzında yaz."],
9 ["human", "{topic} hakkında kısa bir yazı yaz."],
10]);
11
12const chain = prompt.pipe(model).pipe(new StringOutputParser());
13
14const result = await chain.invoke({
15 style: "samimi ve eğlenceli",
16 topic: "yapay zeka",
17});

2. RAG (Retrieval Augmented Generation)

Kendi verilerinizle zenginleştirilmiş yanıtlar:

📘TypeScript
1import { OpenAIEmbeddings } from "@langchain/openai";
2import { MemoryVectorStore } from "langchain/vectorstores/memory";
3import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
4
5// Dokümanları parçala
6const splitter = new RecursiveCharacterTextSplitter({
7 chunkSize: 1000,
8 chunkOverlap: 200,
9});
10
11const docs = await splitter.createDocuments([documentText]);
12
13// Vector store oluştur
14const vectorStore = await MemoryVectorStore.fromDocuments(
15 docs,
16 new OpenAIEmbeddings()
17);
18
19// Retriever al
20const retriever = vectorStore.asRetriever();
21
22// RAG chain oluştur
23const ragChain = RunnableSequence.from([
24 {
25 context: retriever.pipe(formatDocs),
26 question: new RunnablePassthrough(),
27 },
28 prompt,
29 model,
30 new StringOutputParser(),
31]);

3. Memory

Konuşma geçmişini hatırlama:

📘TypeScript
1import { BufferMemory } from "langchain/memory";
2import { ConversationChain } from "langchain/chains";
3
4const memory = new BufferMemory();
5
6const chain = new ConversationChain({
7 llm: model,
8 memory: memory,
9});
10
11// İlk mesaj
12await chain.call({ input: "Merhaba, benim adım Ahmet." });
13
14// İkinci mesaj - önceki konuşmayı hatırlar
15const response = await chain.call({ input: "Benim adımı hatırlıyor musun?" });
16// Output: "Evet, adınız Ahmet."

AI Agent Oluşturma

Tool'lar ile akıllı agent:

📘TypeScript
1import { DynamicTool } from "@langchain/core/tools";
2import { AgentExecutor, createOpenAIFunctionsAgent } from "langchain/agents";
3
4// Custom tool tanımla
5const weatherTool = new DynamicTool({
6 name: "weather",
7 description: "Bir şehrin hava durumunu getirir",
8 func: async (city: string) => {
9 const response = await fetch(
10 `https://api.weather.com/${city}`
11 );
12 return response.json();
13 },
14});
15
16const calculatorTool = new DynamicTool({
17 name: "calculator",
18 description: "Matematiksel işlemler yapar",
19 func: async (expression: string) => {
20 return eval(expression).toString();
21 },
22});
23
24// Agent oluştur
25const tools = [weatherTool, calculatorTool];
26
27const agent = await createOpenAIFunctionsAgent({
28 llm: model,
29 tools,
30 prompt,
31});
32
33const executor = new AgentExecutor({
34 agent,
35 tools,
36});
37
38// Agent'ı çalıştır
39const result = await executor.invoke({
40 input: "İstanbul'un hava durumu nedir ve sıcaklığı Fahrenheit'e çevir",
41});

Production İpuçları

  1. Streaming: Uzun yanıtlar için streaming kullanın
  2. Caching: Embedding'leri cache'leyin
  3. Rate Limiting: API limitlerini yönetin
  4. Monitoring: LangSmith ile izleme yapın

Sonuç

LangChain, karmaşık AI uygulamalarını modüler ve bakımı kolay bir şekilde geliştirmenizi sağlar. RAG, memory ve agent kavramlarını iyi anlamak, güçlü AI ürünleri oluşturmanın anahtarıdır.

Fribe.co olarak LangChain ve AI çözümleri geliştiriyoruz. Projenizi konuşalım!

Bu yazıyı beğendiniz mi?

Sosyal medyada paylaşarak destek olun

Projeniz İçin Yardıma mı İhtiyacınız Var?

Modern web teknolojileri ile projelerinizi hayata geçiriyoruz. İlk danışmanlık ücretsiz!

Ücretsiz Danışmanlık Al