Ana içeriğe atla

Genel Bakış

LemonData, standart OpenAI uyumlu chat ve embeddings yüzeyinde kaldığınızda LangChain’in ChatOpenAI ve OpenAIEmbeddings entegrasyonlarıyla iyi çalışır.
Güncel LangChain dokümantasyonu, ChatOpenAI’ın resmi OpenAI uyumlu request/response biçimlerini hedeflediğini belirtir. Sağlayıcıya özgü, standart dışı response alanlarına ihtiyacınız varsa, ChatOpenAI’a güvenmek yerine sağlayıcıya özgü bir LangChain entegrasyonu kullanın.
Tür: Framework veya platformBirincil yol: OpenAI uyumlu standart surfaceDestek seviyesi: Standart surface desteklenir
Bu sayfa bilinçli olarak yalnızca standart OpenAI-compatible LangChain surface’ini kapsar; bunun ötesindeki sağlayıcıya özgü LangChain özelliklerini kapsamaz.

Kurulum

pip install langchain langchain-openai langchain-community faiss-cpu

Temel Yapılandırma

from langchain_openai import ChatOpenAI

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

response = llm.invoke("Explain LemonData in one sentence.")
print(response.content)

Farklı Modelleri Kullanma

from langchain_openai import ChatOpenAI

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

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

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

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

Mesaj Geçmişi

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)

Streaming

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

Embeddings

from langchain_openai import OpenAIEmbeddings

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

vector = embeddings.embed_query("Hello world")
print(vector[:5])

Basit RAG Örneği

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

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

texts = [
    "LemonData provides one API for many AI models.",
    "LemonData, OpenAI uyumlu entegrasyonları destekler."
]

vectorstore = FAISS.from_texts(texts, embeddings)
retriever = vectorstore.as_retriever()

prompt = ChatPromptTemplate.from_template(
    "Answer using the context below.\\n\\nContext:\\n{context}\\n\\nQuestion:\\n{question}"
)

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

response = rag_chain.invoke("What does LemonData provide?")
print(response.content)

Agent’lar

Yeni agentic projelerde LangChain, uzun süre çalışan ve tool kullanan workflow’lar üzerinde daha açık kontrol için LangGraph’ı değerlendirmenizi önerir.
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"])

En İyi Uygulamalar

En güvenilir LemonData kurulumu, eski environment variable alias’larına bağlı kalmak yerine base_url="https://api.lemondata.cc/v1" değerini doğrudan ChatOpenAI ve OpenAIEmbeddings’e iletmektir.
ChatOpenAI üzerinde standart chat, tool calling, streaming ve embeddings özelliklerine bağlı kalın. Sağlayıcıya özgü ek özelliklere ihtiyacınız varsa, sağlayıcının kendi LangChain entegrasyonuna geçin.
Retrieval için text-embedding-3-small gibi embedding modelleri kullanın ve daha güçlü chat modellerini son yanıt adımı için saklayın.