我们最常见的是使用网页端,有个对话框,输入我们想问的问题,点击"发送"按钮,然后就等待大模型给我们返回答案了。
其实,这可以看成一个产品,以大模型为后端的聊天工具。
这是最直观的可以给用户体验到大模型的方式,每个模型厂商都有类似产品。

有的时候企业出于安全性的考虑,会在自己的内网部署开源的大模型或企业自己训练的大模型,这个时候可以选用类似 ollama 这样的模型部署工具来使用。
# 以命令行的方式和大模型交互
ollama run deepseek-r1
# 以api的方式和大模型交互
curl -s "http://127.0.0.1:11434/api/generate" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:latest",
"prompt": "请简要介绍一下牛顿第一定律。",
"stream": false
}'
模型中转平台是类似 openrouter(https://openrouter.ai/)和 模力方舟(https://ai.gitee.com/serverless-api)这样的把市面上主流的大模型放在一个平台上,通过统一的接口供大家使用。
上面两个平台使用的 url 和 key 都是第三方的,除了这种聚合模式外,还有像 liteLLM 这样的平台,它是一个开源的库,也可以对外提供统一的接口供大家使用,但是使用的 url 和 key 都是模型厂商自己的。
from openai import OpenAI
client = OpenAI(
base_url="https://ai.gitee.com/v1",
api_key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
)
response = client.chat.completions.create(
messages=[
{
"role": "system",
"content": "You are a helpful and harmless assistant. You should think step-by-step."
},
{
"role": "user",
"content": "Can you please let us know more details about your "
}
],
model="DeepSeek-V3",
stream=True,
max_tokens=1024,
temperature=0.6,
top_p=0.8,
extra_body={
"top_k": 20,
},
frequency_penalty=1.1,
)
每家模型厂商一般除了 web 端的产品外,也提供 SDK 的方式对外提供使用,一般需要在模型厂商的官网新建 key,并且需要充值才能使用。
# deepseek的python 版本 sdk使用方法,也有 nodejs 版本和 bash 脚本的
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get('DEEPSEEK_API_KEY'),
base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
stream=False
)
print(response.choices[0].message.content)
除了上面几种偏底层的模型的使用方法外,还有更偏向于应用侧的模型使用方式,那就是使用 Langchain 或者 openai agent sdk 这样的框架,这些框架是把大模型做了进一步的抽象,方便编写各种业务应用。
# 使用langchain调用 DeepSeek 模型
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(
api_key=env_settings.DS_API_KEY,
model="deepseek-ai/DeepSeek-R1",
temperature=0,
max_tokens=None,
timeout=None,
max_retries=2,
api_base='https://api.siliconflow.cn'
)
messages = [
("system", "You are a helpful translator. Translate the user sentence to French."),
("human", "I love programming."),
]
# print(llm.invoke(messages))
# print(llm.invoke("hello").content)
ai_message = llm.invoke([
SystemMessage(content="please speak in chinese"),
HumanMessage(content="hello"),
])
print(ai_message.content)