ChatDeepSeek
This will help you getting started with DeepSeek's hosted chat models. For detailed documentation of all ChatDeepSeek features and configurations head to the API reference.
Overviewโ
Integration detailsโ
| Class | Package | Local | Serializable | JS support | Package downloads | Package latest | 
|---|---|---|---|---|---|---|
| ChatDeepSeek | langchain-deepseek | โ | beta | โ | 
Model featuresโ
| Tool calling | Structured output | JSON mode | Image input | Audio input | Video input | Token-level streaming | Native async | Token usage | Logprobs | 
|---|---|---|---|---|---|---|---|---|---|
| โ | โ | โ | โ | โ | โ | โ | โ | โ | โ | 
Setupโ
To access DeepSeek models you'll need to create a/an DeepSeek account, get an API key, and install the langchain-deepseek integration package.
Credentialsโ
Head to DeepSeek's API Key page to sign up to DeepSeek and generate an API key. Once you've done this set the DEEPSEEK_API_KEY environment variable:
import getpass
import os
if not os.getenv("DEEPSEEK_API_KEY"):
    os.environ["DEEPSEEK_API_KEY"] = getpass.getpass("Enter your DeepSeek API key: ")
If you want to get automated tracing of your model calls you can also set your LangSmith API key by uncommenting below:
# os.environ["LANGSMITH_TRACING"] = "true"
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
Installationโ
The LangChain DeepSeek integration lives in the langchain-deepseek package:
%pip install -qU langchain-deepseek
Instantiationโ
Now we can instantiate our model object and generate chat completions:
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(
    model="deepseek-chat",
    temperature=0,
    max_tokens=None,
    timeout=None,
    max_retries=2,
    # other params...
)
Invocationโ
messages = [
    (
        "system",
        "You are a helpful assistant that translates English to French. Translate the user sentence.",
    ),
    ("human", "I love programming."),
]
ai_msg = llm.invoke(messages)
ai_msg.content
Chainingโ
We can chain our model with a prompt template like so:
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate(
    [
        (
            "system",
            "You are a helpful assistant that translates {input_language} to {output_language}.",
        ),
        ("human", "{input}"),
    ]
)
chain = prompt | llm
chain.invoke(
    {
        "input_language": "English",
        "output_language": "German",
        "input": "I love programming.",
    }
)
API referenceโ
For detailed documentation of all ChatDeepSeek features and configurations head to the API Reference.
Relatedโ
- Chat model conceptual guide
- Chat model how-to guides