Ana içeriğe atla

Genel Bakış

LangChain, LLM uygulamaları oluşturmak için popüler bir çerçevedir (framework). LemonData, LangChain’in OpenAI entegrasyonu ile sorunsuz bir şekilde çalışır.

Kurulum

pip install langchain langchain-openai

Temel Yapılandırma

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4o",
    api_key="sk-your-lemondata-key",
    base_url="https://api.lemondata.cc/v1"
)

response = llm.invoke("Hello, how are you?")
print(response.content)

Farklı Modelleri Kullanma

Herhangi bir LemonData modeline erişin:
# OpenAI GPT-4o
gpt4 = ChatOpenAI(
    model="gpt-4o",
    api_key="sk-your-key",
    base_url="https://api.lemondata.cc/v1"
)

# Anthropic Claude
claude = ChatOpenAI(
    model="claude-sonnet-4-5",
    api_key="sk-your-key",
    base_url="https://api.lemondata.cc/v1"
)

# Google Gemini
gemini = ChatOpenAI(
    model="gemini-2.5-flash",
    api_key="sk-your-key",
    base_url="https://api.lemondata.cc/v1"
)

# DeepSeek
deepseek = ChatOpenAI(
    model="deepseek-r1",
    api_key="sk-your-key",
    base_url="https://api.lemondata.cc/v1"
)

Mesaj Geçmişi ile Sohbet

from langchain_core.messages import HumanMessage, SystemMessage

messages = [
    SystemMessage(content="You are a helpful assistant."),
    HumanMessage(content="What is the capital of France?")
]

response = llm.invoke(messages)
print(response.content)

Akış (Streaming)

for chunk in llm.stream("Write a poem about coding"):
    print(chunk.content, end="", flush=True)

Asenkron Kullanım

import asyncio

async def main():
    response = await llm.ainvoke("Hello!")
    print(response.content)

asyncio.run(main())

Zincirler (Chains)

from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful assistant that translates {input_language} to {output_language}."),
    ("human", "{text}")
])

chain = prompt | llm | StrOutputParser()

result = chain.invoke({
    "input_language": "English",
    "output_language": "French",
    "text": "Hello, how are you?"
})
print(result)

RAG (Geri Getirme ile Artırılmış Üretim)

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough

# Embeddings
embeddings = OpenAIEmbeddings(
    model="text-embedding-3-small",
    api_key="sk-your-key",
    base_url="https://api.lemondata.cc/v1"
)

# Vektör deposu oluştur
texts = ["LemonData supports 300+ AI models", "API is OpenAI compatible"]
vectorstore = FAISS.from_texts(texts, embeddings)
retriever = vectorstore.as_retriever()

# RAG zinciri
template = """Answer based on context:
{context}

Question: {question}
"""
prompt = ChatPromptTemplate.from_template(template)

rag_chain = (
    {"context": retriever, "question": RunnablePassthrough()}
    | prompt
    | llm
)

response = rag_chain.invoke("How many models does LemonData support?")
print(response.content)

Ajanlar (Agents)

LangChain’deki ajan API’ları gelişmeye devam ediyor. Yeni projeler için daha esnek ajan mimarileri sunan LangGraph kullanmayı düşünebilirsiniz.
from langchain.agents import create_openai_tools_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.tools import tool

@tool
def search(query: str) -> str:
    """Search for information."""
    return f"Search results for: {query}"

tools = [search]

prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful assistant with access to tools."),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}")
])

agent = create_openai_tools_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools)

result = executor.invoke({"input": "Search for LemonData pricing"})
print(result["output"])

Ortam Değişkenleri

Daha temiz bir kod için ortam değişkenlerini kullanın:
export OPENAI_API_KEY="sk-your-lemondata-key"
export OPENAI_API_BASE="https://api.lemondata.cc/v1"
from langchain_openai import ChatOpenAI

# Otomatik olarak ortam değişkenlerini kullanacaktır
llm = ChatOpenAI(model="gpt-4o")

Geri Çağırmalar (Callbacks) ve İzleme

from langchain_core.callbacks import StdOutCallbackHandler

llm = ChatOpenAI(
    model="gpt-4o",
    api_key="sk-your-key",
    base_url="https://api.lemondata.cc/v1",
    callbacks=[StdOutCallbackHandler()]
)

En İyi Uygulamalar

Zincirlerdeki basit görevler için daha ucuz modeller (GPT-4o-mini) kullanın.
LangChain, geçici hatalar için yerleşik yeniden deneme mantığına sahiptir.
Token tüketimini takip etmek için geri çağırmaları (callbacks) kullanın.