🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
📌 项目背景
随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战:
- 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;
- 缺乏一个统一平台进行模型调用与测试;
- 本地模型 Ollama 的集成与前端展示较为困难;
- 快速原型设计、交互测试体验不佳。
为了解决这些问题,本项目基于 Streamlit 全栈 Python 实现,搭建了一个 统一的、多模型切换、支持本地 Ollama 的轻量平台,用于模型调用测试、调试、教学演示等场景。
🏗 技术选型
模块 | 技术 | 说明 |
---|---|---|
前端界面 | Streamlit | 快速构建 Web UI,纯 Python 实现 |
接口调用 | httpx |
异步 HTTP 客户端 |
配置管理 | yaml (PyYAML) |
统一存储模型 API 配置 |
本地模型 | Ollama | 支持本地部署、轻量运行 |
🗂 项目结构
llm-streamlit-platform/
├── config.yaml # 模型配置
└── app.py # 主程序(Streamlit 应用)
🔧 config.yaml 示例
models:
openai:
url: https://api.openai.com/v1/chat/completions
key: sk-xxx
type: openai
gemini:
url: https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent
key: google-key
type: gemini
claude:
url: https://api.anthropic.com/v1/messages
key: anthropic-key
type: claude
ollama:
url: http://localhost:11434/api/chat
model: llama3
type: ollama
🧠 主程序:app.py
import streamlit as st
import yaml, httpx
# 加载模型配置
with open("config.yaml", "r") as f:
config = yaml.safe_load(f)["models"]
st