使用Python 构建支持主流大模型与 Ollama 的统一接口平台
🧩 背景概述
近年来,随着大语言模型(LLM)的蓬勃发展,OpenAI 的 GPT 系列、Google 的 Gemini、Anthropic 的 Claude、以及开源的 Ollama 本地模型等,逐渐成为自然语言处理、智能问答、AI 助手等应用的基础组件。
开发者在使用这些模型时常面临如下问题:
- 各模型接口不统一(OpenAI、Gemini、Claude 请求格式不同);
- 无法在一个平台中快速切换和对比多个模型;
- 需要部署独立前端或调用 SDK,开发成本较高;
- 本地模型 Ollama 缺乏统一整合界面;
为解决上述痛点设计实现一个 基于纯 Python、前后端一体化、轻量级的通用大模型调用平台。
✅ 平台目标
- 支持 主流云端模型(OpenAI、Gemini、Claude);
- 支持 本地大模型 Ollama(如 LLaMA3、Phi3、Gemma);
- 使用 Python 全栈实现,无需 HTML/JS;
- 界面友好、轻量快速启动,适用于调试、对比测试、原型开发。
🛠 技术栈选型
模块 | 工具/框架 | 说明 |
---|---|---|
Web 前端 | Gradio | 用 Python 构建交互式 Web UI,无需写前端 |
后端接口 | Python + httpx | 通过 HTTP 请求调用各大模型 API |
配置管理 | YAML(PyYAML) | 管理模型配置、API Key |
本地模型 | Ollama | 支持离线推理,自带本地 Web API 接口 |
🗂 项目结构
llm-unified-platform/
├── config.yaml # 所有模型接口配置
└── app.py # 前后端集成的主程序(Gradio)
📄 config.yaml 示例配置
models:openai:url: https://api.openai.com/v1/chat/completionskey: sk-xxxxxtype: openaigemini:url: https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContentkey: xxx-google-keytype: geminiclaude:url: https://api.anthropic.com/v1/messageskey: xxx-anthropic-keytype: claudeollama:url: http://localhost:11434/api/chatmodel: llama3type: ollama
🧠 主程序:app.py(Gradio 前后端一体)
import gradio as gr
import httpx, yaml# 加载配置
with open("config.yaml",