使用大模型有几种方法呢?

1/Web 端

我们最常见的是使用网页端,有个对话框,输入我们想问的问题,点击"发送"按钮,然后就等待大模型给我们返回答案了。

其实,这可以看成一个产品,以大模型为后端的聊天工具。

这是最直观的可以给用户体验到大模型的方式,每个模型厂商都有类似产品。

ChatGPT Web端页面

2/本地部署

有的时候企业出于安全性的考虑,会在自己的内网部署开源的大模型或企业自己训练的大模型,这个时候可以选用类似 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
  }'

3/模型中转平台

模型中转平台是类似 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,
)

4/模型SDK

每家模型厂商一般除了 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)

5/框架

除了上面几种偏底层的模型的使用方法外,还有更偏向于应用侧的模型使用方式,那就是使用 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)