大模型接入从入门到实战:API/SDK/本地部署/Claude Code 路由全解析

文章目录

前言:本文面向刚开始接触大模型开发的小伙伴,不需要深厚的算法基础,只需具备基本的编程常识即可阅读。全文分为五个部分:从大模型的基本概念出发,依次介绍如何通过 API、SDK、本地部署(Ollama)以及 Claude Code 路由等方式将大模型接入自己的项目。读完本文,你将对大模型的接入方式有一个完整的横向认识,并能根据自己的需求选择合适的方案。

一、什么是大模型

模型是从数据中学习规律的"函数"或"程序",一个模型通常只能做特定的任务,在模型训练中不一定输出结果都是对的需要人工参与,也就是数据标注员。

大模型又称⼤语⾔模型(Large Language Model,LLM):指基于⼤规模神经⽹络(参数规模通常达数⼗亿⾄万亿级别,例如GPT-3包含1750亿参数),通过⾃监督或半监督⽅式,对海量⽂本进⾏训练的语⾔模型。

  • 参数:参数是模型从数据中学习到的"知识要点"或"内部规则",参数越大判断的越精确,训练的复杂度也越高。
  • 神经网络:是模仿人的大脑的工作方式,由多个神经元构成,每个神经元处理一点点信息,整个神经网络就能处理复杂的任务。
    简单说:神经⽹络就是⼀个通过数据训练出来的、由⼤量参数组成的复杂决策系统。

监督学习

想象在教一个小孩认动物。拿着一张猫的图片告诉他"这是猫",拿着狗的图片说"这是狗"。每张图片都有人告诉他答案。需要投入大量的人力。

这就是监督学习------每一条数据都有人工标注好的答案。

  • 半监督学习:需要少量人工标注作为起点,其余靠模型自己补充。这次只告诉他几十张图片的答案,剩下几千张没有标注。模型会先从这少量的"已知答案"中学习规律,再去推断那些没有标注的数据大概是什么。
  • 自监督学习:不需要任何人来标注,数据自己就能给自己出题。模型在做了几千亿次这样的"完形填空"之后,慢慢就理解了语言的规律、逻辑,甚至常识。

生成型模型

给它一段话,它给你生成一段话回来。就像你问一个人"帮我写封邮件",他思考之后写出来给你。它的核心能力是创造内容,而且每次输出的都是人类能直接阅读和使用的东西。我们平时在web端或移动端app使用的AI就是生成型模型。

嵌入型模型

把文字变成一串数字(向量),比如几百个到几千个数字组成的列表。这串数字人类看不懂,是给计算机看的。通常用来搜索语义相似的数据(RAG)。

二、API接入

API调用通常都是使用HTTP请求,把信息放在Json里通过POST发送。再接收Json格式的回复。

这里我们使用Apifox来做测试,Apifox 是一款集 API 设计、调试、测试于一体的工具,支持 HTTP 请求调试,非常适合在接入大模型前进行接口验证。

下面以DeepSeek为例进行测试,ChatGPT、Gemini、Claude等等同理。

DeepSeek放平台:https://platform.deepseek.com/api_keys

API接入说明文档:https://api-docs.deepseek.com/zh-cn/

正文字段:

响应结果:

三、SDK接入

官方网示例:

python 复制代码
# Please install OpenAI SDK first: `pip3 install openai`
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)

示例:

python 复制代码
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.deepseek.com",
         api_key=os.environ.get("DEEPSEEK_API_KEY"))

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "你是谁?"}],
    stream=False
)

print(response.choices[0].message.content)

四、本地部署(Ollama)

如果你觉得调用API太烧钱或者想对模型进行一些微调,那么可以找一些开源的模型下载下来部署到本地。

下面是常用大模型开源社区:

Ollama 是目前最流行的本地大模型运行工具,支持 Llama、Mistral、Qwen、Gemma 等主流开源模型,一条命令即可完成部署。

  • 注意:在本地部署时需要考虑电脑性能能不能跑得通。
  • 注意:即使模型开源,若通过运营商提供的 API 调用,消耗的是对方算力,需要付费。

安装 Ollama

Linux / macOS:

bash 复制代码
curl -fsSL https://ollama.com/install.sh | sh

Windows:

前往 https://ollama.com/download 下载 .exe 安装包。安装完成后 Ollama 会作为系统服务自动启动,并在任务栏托盘显示图标。

Windows 用户安装后无需手动执行 ollama serve,服务已在后台运行。

拉取并运行模型

bash 复制代码
# 拉取并运行模型
ollama run <模型名称>

常用管理命令

bash 复制代码
# 查看已下载的模型列表
ollama list

# 查看正在运行的模型
ollama ps

# 删除模型
ollama rm <模型名称>

# 查看模型详情
ollama show <模型名称>

模型下载下来占用空间是很大的,如果你不想让你的C盘炸请关注一下存储路径

平台 默认存储路径
Linux ~/.ollama/models
macOS ~/.ollama/models
Windows C:\Users\<用户名>\.ollama\models

Windows 修改模型存储路径(可选):

  1. 打开「系统属性」→「环境变量」
  2. 新建系统变量:变量名 OLLAMA_MODELS,值填入目标路径,例如 D:\ollama\models
  3. 重启 Ollama 服务生效

Linux / macOS 修改模型存储路径:

bash 复制代码
export OLLAMA_MODELS=/data/ollama/models
ollama serve

或者在Ollama应用的设置中更改存储路径。

配置 Ollama 允许外部访问

默认情况下 Ollama 仅监听本机(127.0.0.1),如需局域网访问需额外配置。

Linux / macOS(临时生效):

bash 复制代码
OLLAMA_HOST=0.0.0.0 ollama serve

Linux(永久生效,systemd):

bash 复制代码
sudo systemctl edit ollama.service
# 在弹出的编辑器中 [Service] 段下添加:
# Environment="OLLAMA_HOST=0.0.0.0"
sudo systemctl daemon-reload
sudo systemctl restart ollama

Windows(永久生效):

  1. 打开「系统属性」→「环境变量」
  2. 新建系统变量:变量名 OLLAMA_HOST,值 0.0.0.0
  3. 在任务栏托盘重启 Ollama 服务

Ollama 服务接口

Ollama 启动后默认在 http://localhost:11434 提供服务,兼容 OpenAI API 格式:

接口 方法 说明
/api/generate POST 文本生成(Ollama 原生格式)
/api/chat POST 多轮对话(Ollama 原生格式)
/v1/chat/completions POST OpenAI 兼容接口
/v1/models GET 获取模型列表

使用 Modelfile 自定义模型

dockerfile 复制代码
FROM qwen2.5:7b

SYSTEM """
你是一个专业的代码助手,擅长 Python、JavaScript 和 Go 语言开发。
请用简洁清晰的中文回答问题。
"""

PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096

Linux / macOS:

bash 复制代码
ollama create my-coder -f ./Modelfile
ollama run my-coder

Windows(CMD):

cmd 复制代码
ollama create my-coder -f .\Modelfile
ollama run my-coder

五、Claude Code 接入

claude-code-router是Github的一个开源项目,可以将其他模型接入到Claude Code上。相当与给其他模型套一个Claude Code的壳,获取了Claude Code 整套工程能力。

复制代码
你的代码任务
     ↓
Claude Code(任务理解、工具调用、上下文管理)
     ↓
claude-code-router(智能路由)
     ↓
┌─────────────┬──────────────┬─────────────┐
DeepSeek-V3   Gemini 2.5   Qwen-Max   ...
(便宜)       (长上下文)   (中文强)

操作步骤:

下载claude code

bash 复制代码
npm install -g @anthropic-ai/claude-code

下载claude code router

bash 复制代码
npm install -g @musistudio/claude-code-router

创建并配置文件 ~/.claude-code-router/config.json,即在家目录下创建.claude-code-router文件夹,在该文件夹下再创建config.json

注意:如果需要使用 skills,需将 skills 文件夹放在 .claude-code-router 文件夹下。

config.json的配置:

示例:

javascript 复制代码
{
  "Providers": [
    {
      "name": "grok",
      "api_base_url": "xxxxxx",
      "api_key": "your-key",
      "models": ["grok-4.20-0309"]
    },
    {
      "name": "ollama",
      "api_base_url": "http://localhost:11434/v1/chat/completions",
      "api_key": "ollama",
      "models": ["your-model"]
    }
  ],
  "Router": {
    "default": "grok,grok-4.20-0309"
  }
}

以上是最简洁的配置,相关的字段也是必须要有的,Providers里可以配置多个模型,包括本地和远程模型。

效果示例:

  • 注意:ollama配置的本地模型(可选),其中api_key直接填ollama即可。

官方示例:

javascript 复制代码
{
  "APIKEY": "your-secret-key",
  "PROXY_URL": "http://127.0.0.1:7890",
  "LOG": true,
  "API_TIMEOUT_MS": 600000,
  "NON_INTERACTIVE_MODE": false,
  "Providers": [
    {
      "name": "openrouter",
      "api_base_url": "https://openrouter.ai/api/v1/chat/completions",
      "api_key": "sk-xxx",
      "models": [
        "google/gemini-2.5-pro-preview",
        "anthropic/claude-sonnet-4",
        "anthropic/claude-3.5-sonnet",
        "anthropic/claude-3.7-sonnet:thinking"
      ],
      "transformer": {
        "use": ["openrouter"]
      }
    },
    {
      "name": "deepseek",
      "api_base_url": "https://api.deepseek.com/chat/completions",
      "api_key": "sk-xxx",
      "models": ["deepseek-chat", "deepseek-reasoner"],
      "transformer": {
        "use": ["deepseek"],
        "deepseek-chat": {
          "use": ["tooluse"]
        }
      }
    },
    {
      "name": "ollama",
      "api_base_url": "http://localhost:11434/v1/chat/completions",
      "api_key": "ollama",
      "models": ["qwen2.5-coder:latest"]
    },
    {
      "name": "gemini",
      "api_base_url": "https://generativelanguage.googleapis.com/v1beta/models/",
      "api_key": "sk-xxx",
      "models": ["gemini-2.5-flash", "gemini-2.5-pro"],
      "transformer": {
        "use": ["gemini"]
      }
    },
    {
      "name": "volcengine",
      "api_base_url": "https://ark.cn-beijing.volces.com/api/v3/chat/completions",
      "api_key": "sk-xxx",
      "models": ["deepseek-v3-250324", "deepseek-r1-250528"],
      "transformer": {
        "use": ["deepseek"]
      }
    },
    {
      "name": "modelscope",
      "api_base_url": "https://api-inference.modelscope.cn/v1/chat/completions",
      "api_key": "",
      "models": ["Qwen/Qwen3-Coder-480B-A35B-Instruct", "Qwen/Qwen3-235B-A22B-Thinking-2507"],
      "transformer": {
        "use": [
          [
            "maxtoken",
            {
              "max_tokens": 65536
            }
          ],
          "enhancetool"
        ],
        "Qwen/Qwen3-235B-A22B-Thinking-2507": {
          "use": ["reasoning"]
        }
      }
    },
    {
      "name": "dashscope",
      "api_base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
      "api_key": "",
      "models": ["qwen3-coder-plus"],
      "transformer": {
        "use": [
          [
            "maxtoken",
            {
              "max_tokens": 65536
            }
          ],
          "enhancetool"
        ]
      }
    },
    {
      "name": "aihubmix",
      "api_base_url": "https://aihubmix.com/v1/chat/completions",
      "api_key": "sk-",
      "models": [
        "Z/glm-4.5",
        "claude-opus-4-20250514",
        "gemini-2.5-pro"
      ]
    }
  ],
  "Router": {
    "default": "deepseek,deepseek-chat",
    "background": "ollama,qwen2.5-coder:latest",
    "think": "deepseek,deepseek-reasoner",
    "longContext": "openrouter,google/gemini-2.5-pro-preview",
    "longContextThreshold": 60000,
    "webSearch": "gemini,gemini-2.5-flash"
  }
}
  • APIKEY(可选):设置访问 router 本身的密钥,客户端需在 Authorization 或 x-api-key 头中携带
  • HOST(可选):服务绑定地址。若未设置 APIKEY,强制锁定为 127.0.0.1
  • PROXY_URL(可选):为 API 请求设置代理,如 http://127.0.0.1:7890
  • LOG(可选):是否启用日志,true/false
  • Providers:配置各模型 provider
  • Router:设置路由规则,default 字段指定默认模型

注意:每次配置结束后使用ccr restart重启保证配置生效。

  • ccr model:选择模型
  • ccr code:启动claude code

六、其他接入方式

除了以上这些接入方式,还有 LangChainLangGraph 等框架可供选择:

LangChain:封装了「调模型→处理结果→调工具→再调模型」这个循环的框架,你写应用逻辑,它帮你管模型调用、Prompt 模板、RAG、记忆等。适合快速搭建问答机器人、文档摘要、RAG 检索等相对线性的应用场景。

LangGraphLangChain 的升级版,把流程从线性链变成图结构,节点可以循环、分支、多 Agent 并行。适合需要多步推理、条件判断或多个 Agent 协作的复杂任务,比如自动化研究助手、代码审查流水线等。

关于LangChain和LangGraph的介绍和使用请期待后文。

非常感谢您能耐心读完这篇文章。倘若您从中有所收获,还望多多支持呀!

相关推荐
秦jh_2 小时前
【LangChain】LangChain 与 LangGraph 介绍
人工智能·langchain
Cobyte2 小时前
从网关的角度理解并实现一个 Mini OpenClaw
后端·aigc·ai编程
captain_AIouo2 小时前
Captain AI:破解OZON困局,赋能竞争优势
大数据·人工智能·经验分享·aigc
黎阳之光2 小时前
【从虚拟到实体:黎阳之光实时三维重构,开启AI空间智能新纪元
大数据·人工智能·算法·安全·数字孪生
亦暖筑序2 小时前
Spring AI VectorStore与RAG Pipeline源码深度解析:从PDF到检索增强生成的完整实现
人工智能·spring
小小AK2 小时前
金蝶云星空与旺店通·企业奇门系统对接方案
人工智能
VBsemi-专注于MOSFET研发定制2 小时前
面向AI低空应急指挥平台的无人机动力与负载管理MOSFET选型策略与器件适配手册
人工智能·无人机
阿钱真强道2 小时前
08 ComfyUI + SVD 系列(六)从 SDXL 到 SDV:为什么说视频生成本质上是“带时间维度的图片生成”?
aigc·sdxl·stablediffusion·扩散模型·视频生成·sdv·图片生成