İçeriğe atla
Tüm belgeler

Kod

LangChain

LangChain’in ChatOpenAI sınıfı nokeep ile olduğu gibi çalışır: temel URL’yi, anahtarını ve bir model kimliğini ver. Hem Python hem JavaScript için.

29 Ekim 2026 tarihinde kontrol edildi

Kurulum ve bağlantı

pip install langchain-openai
export NOKEEP_API_KEY="sk-nokeep-test"  # your own key once it connects
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="deepseek-v4.1-flash-uncensored",
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
)

reply = llm.invoke("Name three good names for a tavern.")
print(reply.content)
print(reply.usage_metadata)

JavaScript’te temel URL, üst düzeyde değil configuration içinde verilir. Üst düzeydeki baseURL yok sayılır ve çağrı, nokeep anahtarınla varsayılan sunucuya gider.

Akış

import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="deepseek-v4.1-flash-uncensored",
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
    stream_usage=True,  # ask for the token counts in the last chunk
)

full = None
for chunk in llm.stream("Tell me a story in three lines."):
    print(chunk.content, end="", flush=True)
    full = chunk if full is None else full + chunk
print("\n", full.usage_metadata)

Python’da ChatOpenAI, akış için kullanım bilgisini yalnızca varsayılan sunucusu için ister. Özel bir temel URL ile token sayılarını almak için stream_usage=True ayarla. JavaScript istemcisi bunu kendiliğinden ister. Bkz. Akış.

Araç çağırma

from langchain_core.tools import tool

@tool
def get_weather(city: str) -> str:
    """Get the weather in a city."""
    return f"18°C and clear in {city}"

message = llm.bind_tools([get_weather]).invoke("What's the weather in Lisbon?")
for call in message.tool_calls:
    print(call["name"], call["args"])

İki model de araç çağırır. bind_tools üzerine kurulu LangChain ajanları aynı şekilde çalışır. with_structured_output, JSON şemalı bir response_format gönderir; bunu deepseek-v4.1-flash-uncensored alır, GLM düşürür. Yapılandırılmış çıktı için DeepSeek’i kullan. Bkz. Araç çağrıları ve JSON çıktısı.

Düşünme ve örnekleyiciler

import os
from langchain_openai import ChatOpenAI

thinker = ChatOpenAI(
    model="deepseek-v4.1-flash-uncensored",
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
    reasoning_effort="high",
    max_tokens=4000,
    extra_body={"min_p": 0.05},  # fields ChatOpenAI has no argument for
)

DeepSeek, düşünmesini istemediğin sürece hemen yanıtlar. Düşünme bir çağrıda max_tokens’a dahil olur; düşünen çağrılara yeterli yer ver.

Dikkat edilecekler

  • `reasoning_effort` yalnızca modelin kendi değerlerini kabul eder. deepseek-v4.1-flash-uncensored none, low, high, max alır; glm-5.3-flash-uncensored low, high alır. Başka uygulamaların minimal, medium ve xhigh değerleri modelin en yakın düzeyinde çalışır (medium yerine high, xhigh yerine modelde varsa max); başka her değer 400 invalid_reasoning_effort döndürür. Bkz. Düşünme.
  • GLM araçlarını kendisi seçer. glm-5.3-flash-uncensored tool_choice olarak yalnızca auto ya da none alır. Bir aracı zorlamak (required ya da bir fonksiyon adı vermek) 400 unsupported_tool_choice döndürür. Birini zorlaman gerektiğinde DeepSeek’i kullan.
  • Bir modelin alamadığı alanlar reddedilmez, düşürülür. Çağrı yine yanıtlanır ve x-nokeep-ignored yanıt üst bilgisi düşürülenlerin adını yazar. GLM yalnızca tools, tool_choice ve reasoning_effort alanlarını tutar; bu yüzden temperature ve response_format düşürülür. Bkz. hangi modelin hangi alanları aldığı.
  • İçerik parçaları yalnızca metin ve görseldir. image_url parçaları deepseek-v4.1-flash-uncensored üzerinde çalışır; GLM yalnızca metin okur. Ses ve dosya parçaları (bir PDF) 400 unsupported_input döndürür.
  • `n` 1 olmalıdır. Birden çok yanıt için birden çok çağrı yap.
  • Yalnızca sohbet tamamlamaları. /v1/responses ve /v1/embeddings yoktur. Bunlardan birini varsayılan olarak kullanan bir framework’ün sohbet tamamlamalarına yönlendirilmesi gerekir; embedding için başka bir sağlayıcı gerekir.

ChatOpenAI(use_responses_api=True) ve JavaScript’teki useResponsesApi: true, nokeep’te olmayan /v1/responses adresini çağırır. Bunları kapalı bırak.

Sorular

nokeep için bir LangChain paketine ihtiyacım var mı?

Hayır. Python’da langchain-openai ve JavaScript’te @langchain/openai, OpenAI uyumlu herhangi bir API ile çalışır. Temel URL’yi https://nokeep.ai/v1 olarak ayarla.

Bir LangChain ajanı hangi modeli kullanmalı?

Çoğu ajan için deepseek-v4.1-flash-uncensored: görselleri okur, her örnekleyiciyi alır ve bir aracı çağıracak şekilde yönlendirilebilir. glm-5.3-flash-uncensored daha ucuzdur ama araçlarını kendisi seçer.