Kode
LangChain
ChatOpenAI dari LangChain bekerja dengan nokeep apa adanya: beri base URL, kunci kamu dan id model. Python dan JavaScript sama-sama bisa.
Diperiksa 29 Oktober 2026
Pasang dan sambungkan
pip install langchain-openai
export NOKEEP_API_KEY="sk-nokeep-test" # your own key once it connectsimport 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)Dalam JavaScript, base URL ditaruh di dalam configuration, bukan di tingkat atas. baseURL di tingkat atas diabaikan dan panggilan pergi ke host bawaan dengan kunci nokeep kamu.
Stream
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)Dalam Python, ChatOpenAI meminta usage pada stream hanya untuk host bawaannya. Atur stream_usage=True untuk mendapat jumlah token dengan base URL kustom. Klien JavaScript memintanya sendiri. Lihat Streaming.
Pemanggilan tool
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"])Keduanya bisa memanggil tool. Agen LangChain yang dibangun di atas bind_tools bekerja dengan cara yang sama. with_structured_output mengirim response_format dengan skema JSON, yang diterima deepseek-v4.1-flash-uncensored dan dibuang oleh GLM. Pakai DeepSeek untuk keluaran terstruktur. Lihat Pemanggilan tool dan Keluaran JSON.
Thinking dan sampler
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 langsung menjawab kecuali kamu memintanya berpikir. Beri panggilan thinking ruang yang cukup: thinking dihitung ke max_tokens.
Hal yang perlu diwaspadai
- `reasoning_effort` hanya menerima nilai milik model.
deepseek-v4.1-flash-uncensoredmenerimanone,low,high,max;glm-5.3-flash-uncensoredmenerimalow,high. Nilaiminimal,mediumdanxhighdari aplikasi lain dijalankan di tingkat terdekat milik model (mediumsebagaihigh,xhighsebagaimaxjika model memilikinya); nilai lain mendapat400 invalid_reasoning_effort. Lihat Thinking. - GLM memilih tool sendiri.
glm-5.3-flash-uncensoredhanya menerimatool_choiceautoataunone. Memaksa sebuah tool (required, atau menyebut nama fungsi) mendapat400 unsupported_tool_choice. Pakai DeepSeek jika kamu perlu memaksa salah satunya. - Field yang tidak bisa diterima model dibuang, bukan ditolak. Panggilan tetap dijawab, dan header
x-nokeep-ignoredpada respons menyebut apa yang dibuang. GLM hanya menyimpantools,tool_choicedanreasoning_effort, jaditemperaturedanresponse_formatmiliknya dibuang. Lihat field apa yang diterima tiap model. - Bagian konten hanya teks dan gambar. Bagian
image_urlberfungsi dideepseek-v4.1-flash-uncensored; GLM hanya membaca teks. Bagian audio dan file (misalnya PDF) mendapat400 unsupported_input. - `n` harus 1. Untuk beberapa balasan, buat beberapa panggilan.
- Hanya chat completions. Tidak ada
/v1/responsesdan tidak ada/v1/embeddings; framework yang default ke salah satunya perlu diarahkan ke chat completions, dan embedding memerlukan penyedia lain.
ChatOpenAI(use_responses_api=True) dan useResponsesApi: true di JavaScript memanggil /v1/responses, yang tidak dimiliki nokeep. Biarkan mati.
Pertanyaan
Apakah saya perlu paket LangChain untuk nokeep?
Tidak. langchain-openai di Python dan @langchain/openai di JavaScript bekerja dengan API apa pun yang kompatibel dengan OpenAI. Atur base URL ke https://nokeep.ai/v1.
Model mana yang sebaiknya dipakai agen LangChain?
deepseek-v4.1-flash-uncensored untuk sebagian besar agen: ia membaca gambar, menerima semua sampler dan bisa diarahkan untuk memanggil tool. glm-5.3-flash-uncensored lebih murah tetapi memilih tool sendiri.