自定义端点
通过自定义端点功能,你可以将本地部署的 LLM 推理服务(如 Ollama、LM Studio)或企业私有化部署的 API 接入 Elftia。大多数本地推理框架都提供了 OpenAI 兼容的 API 接口,配置过程非常简单。
何时使用
- 想在本地运行开源模型(Llama、Qwen、Mistral 等),实现完全离线使用
- 企业内网部署了私有化 LLM 服务
- 使用 Azure OpenAI Service 而非 OpenAI 官方 API
- 需要连接自建的推理集群(如 vLLM、TGI)
- 想使用 LM Studio 的图形化本地推理环境
Ollama
Ollama 是最流行的本地模型运行工具,支持一键下载和运行各种开源模型。
前置要求
- 已安装 Ollama(下载地址)
- 已下载至少一个模型(如
ollama pull llama3.1)
操作步骤
- 确保 Ollama 正在运行
- Windows/macOS:Ollama 安装后默认作为后台服务运行
- Linux:运行
ollama serve启动服务 - 默认监听地址:
http://localhost:11434
-
在 Elftia 中打开 设置 → 提供商管理
-
找到默认的 Ollama 提供商(如果不存在,点击 添加提供商 → 选择 Ollama 预设)
-
确认配置:
| 字段 | 值 |
|---|---|
| API 格式 | openai |
| Base URL | http://localhost:11434/v1 |
| API Key | (留空,Ollama 默认不需要认证) |
- 添加已下载的模型:
- 点击 添加模型
- 输入 Ollama 中的模型名称(与
ollama list输出一致) - 例如:
llama3.1、qwen2.5:14b、codellama:34b
-
开启 启用 开关并保存
-
在聊天界面的模型选择中,就可以看到 Ollama 的模型了
Ollama 常用模型
| 模型名称 | 参数量 | 用途 | 下载命令 |
|---|---|---|---|
llama3.1 | 8B | 通用聊天 | ollama pull llama3.1 |
llama3.1:70b | 70B | 高质量聊天 | ollama pull llama3.1:70b |
qwen2.5:14b | 14B | 中英文聊天 | ollama pull qwen2.5:14b |
codellama:34b | 34B | 代码生成 | ollama pull codellama:34b |
deepseek-coder-v2 | 16B | 代码辅助 | ollama pull deepseek-coder-v2 |
mistral | 7B | 轻量聊天 | ollama pull mistral |
llava | 7B | 视觉理解 | ollama pull llava |
远程 Ollama
如果 Ollama 运行在局域网内的其他机器上:
- 在运行 Ollama 的机器上设置环境变量
OLLAMA_HOST=0.0.0.0:11434 - 重启 Ollama 服务
- 在 Elftia 中将 Base URL 改为
http://<远程IP>:11434/v1
LM Studio
LM Studio 提供了图形化的本地模型管理和推理界面,内置 OpenAI 兼容的 API 服务器。
前置要求
- 已安装 LM Studio(下载地址)
- 已下载并加载至少一个模型
操作步骤
- 在 LM Studio 中启动本地服务器:
- 打开 LM Studio
- 切换到 Local Server 标签页
- 加载一个模型
- 点击 Start Server
- 记下服务器地址(默认
http://localhost:1234)
-
在 Elftia 中打开 设置 → 提供商管理
-
点击 添加提供商 → 选择 自定义提供商
-
填写配置:
| 字段 | 值 |
|---|---|
| 名称 | LM Studio |
| API 格式 | openai |
| Base URL | http://localhost:1234/v1/chat/completions |
| API Key | lm-studio(LM Studio 不验证 Key,但字段不能为空时填任意值) |
-
添加模型:
- 输入 LM Studio 中加载的模型名称
- 模型名称需要与 LM Studio 显示的模型标识符一致
-
测试连接,启用并保存
vLLM / Text Generation Inference
vLLM 和 TGI 是高性能的 LLM 推理引擎,广泛用于生产环境部署。两者都提供 OpenAI 兼容的 API。
vLLM 配置
-
启动 vLLM 服务(示例):
python -m vllm.entrypoints.openai.api_server \--model meta-llama/Llama-3.1-8B-Instruct \--port 8000 -
在 Elftia 中添加自定义提供商:
| 字段 | 值 |
|---|---|
| 名称 | vLLM Local |
| API 格式 | openai |
| Base URL | http://localhost:8000/v1/chat/completions |
| API Key | (留空或填入 vLLM 的 --api-key 值) |
- 添加模型:使用 vLLM 启动时指定的
--model名称
TGI 配置
-
启动 TGI 服务后,使用其 OpenAI 兼容端点
-
在 Elftia 中添加自定义提供商:
| 字段 | 值 |
|---|---|
| 名称 | TGI |
| API 格式 | openai |
| Base URL | http://localhost:8080/v1/chat/completions |
| API Key | (留空或填入对应值) |
Azure OpenAI
Azure OpenAI Service 使用与 OpenAI 相同的模型,但通过 Azure 平台托管,具有企业级 SLA 和数据合规保障。
前置要求
- Azure 订阅和 Azure OpenAI Service 访问权限
- 已在 Azure Portal 中创建了 Azure OpenAI 资源
- 已部署至少一个模型(得到部署名称)
操作步骤
- 在 Azure Portal 中获取以下信息:
- 终结点 (Endpoint):格式为
https://<resource-name>.openai.azure.com - API 密钥:在「密钥和终结点」页面获取
- 部署名称:在「模型部署」页面获取
- API 版本:推荐使用
2024-08-01-preview
- 终结点 (Endpoint):格式为
-
在 Elftia 中打开 设置 → 提供商管理
-
点击 添加提供商 → 选择 Azure OpenAI 预设
-
填写配置:
| 字段 | 值 | 示例 |
|---|---|---|
| API 格式 | azure-openai | -- |
| Base URL | Azure 终结点 | https://my-resource.openai.azure.com |
| API Key | Azure API 密钥 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| API Version | API 版本号 | 2024-08-01-preview |
-
添加模型:
- 模型 ID 使用 Azure 中的 部署名称(不是模型名称)
- 例如你把
gpt-4o部署为my-gpt4o,则模型 ID 填my-gpt4o
-
测试连接,启用并保存
Azure 与标准 OpenAI 的区别
| 特性 | OpenAI | Azure OpenAI |
|---|---|---|
| Base URL | https://api.openai.com/v1/... | https://<resource>.openai.azure.com |
| 认证 | Authorization: Bearer sk-... | api-key: ... |
| 模型指定 | 使用模型名称(如 gpt-4o) | 使用部署名称 |
| API 版本 | 不需要 | 必须指定(URL 参数) |
| API 格式 | openai | azure-openai |
可配置项参考
以下为自定义端点场景的配置项:
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 名称 | 字符串 | -- | 自定义显示名称 |
| API 格式 | 枚举 | openai | 本地服务通常选 openai,Azure 选 azure-openai |
| Base URL | URL | -- | 推理服务的 API 地址 |
| API Key | 字符串 | (空) | 本地服务通常不需要,Azure 必填 |
| API Version | 字符串 | (空) | 仅 Azure OpenAI 需要,如 2024-08-01-preview |
| 模型列表 | 数组 | (空) | 手动输入服务中可用的模型名称 |
| Transformer | 数组 | (空) | 自定义端点通常不需要额外 Transformer |
行为说明
本地服务的特殊注意事项
- 无 API Key 验证:大多数本地服务(Ollama、LM Studio)不需要 API Key。如果 Elftia 的 API Key 字段要求必填,可以填入任意值
- 模型热加载:部分服务支持动态加载模型。添加新模型到服务后,只需在 Elftia 中手动添加对应的模型名称即可
- 并发限制:本地服务通常只能处理一个请求,建议将并发限制设为 1
- 首次响应延迟:本地模型可能需要几秒钟加载到 GPU 显存,首次请求会有明显延迟
代理与网络
- 本地服务(
localhost/127.0.0.1)不会经过全局代理 - 局域网服务根据代理配置可能需要添加到代理排除列表
模型能力
本地模型的能力标记(视觉、函数调用等)需要在 Elftia 中手动设置。如果模型支持视觉但未标记,Elftia 不会向该模型发送图片。
Troubleshooting
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 连接被拒绝 (Connection refused) | 本地服务未启动 | 确认 Ollama/LM Studio/vLLM 正在运行 |
| 连接超时 | 端口不正确或防火墙阻止 | 检查端口号,确认防火墙允许连接 |
| 模型不存在 (Model not found) | 模型名称与服务端不匹配 | 使用 ollama list 或服务端的模型列表确认名称 |
| Ollama 远程连接失败 | Ollama 默认只监听 localhost | 设置 OLLAMA_HOST=0.0.0.0:11434 并重启 |
| LM Studio 返回空响应 | 模型未加载到内存 | 在 LM Studio 中确认模型已加载并显示 Ready |
| Azure 返回 404 | 部署名称错误 | 确认使用部署名称而非模型名称作为模型 ID |
| Azure 返回 401 | API 版本或密钥错误 | 检查 API Version 字段和 API Key |
| 响应中文乱码 | 模型不支持中文 | 切换到支持中文的模型(如 Qwen、ChatGLM) |
| GPU 内存不足 | 模型太大 | 选择更小的量化版本(如 llama3.1:8b-q4_0) |
| 请求卡住无响应 | 本地服务正在加载模型 | 等待模型加载完成,首次请求可能需要 10-30 秒 |
相关页面
- LLM 提供商概览 - 了解提供商系统和 API 格式
- 添加提供商 - 添加提供商的完整指南
- API Key 池化 - 云端提供商的多 Key 管理
- 模型参数 - 调整 temperature 等生成参数