第一次提交。

其中爬取是tophub_scraper.py
数据入库是 tophub_add_data_to_db.py
查看当前数据内容是 db_viewer.py
This commit is contained in:
2025-11-09 17:20:44 +08:00
commit 25da264413
29 changed files with 28508 additions and 0 deletions

79
ollama_model_viewer.py Normal file
View File

@@ -0,0 +1,79 @@
import sys
import requests
import json
from PySide6.QtWidgets import QApplication, QMainWindow, QListWidget, QVBoxLayout, QWidget, QLabel, QPushButton
from PySide6.QtCore import Qt
from loguru import logger
class OllamaModelViewer(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Ollama 模型查看器")
self.setGeometry(100, 100, 600, 400)
# 创建主窗口部件
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
# 创建布局
self.layout = QVBoxLayout()
self.central_widget.setLayout(self.layout)
# 创建标题标签
self.title_label = QLabel("当前安装的Ollama模型:")
self.title_label.setStyleSheet("font-weight: bold; font-size: 14px;")
self.layout.addWidget(self.title_label)
# 创建列表部件
self.model_list = QListWidget()
self.model_list.setStyleSheet("font-family: monospace;")
self.layout.addWidget(self.model_list)
# 创建刷新按钮
self.refresh_button = QPushButton("刷新模型列表")
self.refresh_button.clicked.connect(self.fetch_models)
self.layout.addWidget(self.refresh_button)
# 初始加载模型
self.fetch_models()
def fetch_models(self):
"""从Ollama API获取模型列表"""
self.model_list.clear()
try:
logger.info("正在获取Ollama模型列表...")
response = requests.get("http://localhost:11434/api/tags", timeout=5)
if response.status_code == 200:
data = response.json()
models = data.get("models", [])
if models:
for model in models:
model_name = model.get("model", "")
if model_name:
self.model_list.addItem(model_name)
logger.info(f"找到模型: {model_name}")
else:
self.model_list.addItem("未找到任何模型")
logger.info("未找到任何模型")
else:
self.model_list.addItem(f"API请求失败状态码: {response.status_code}")
logger.error(f"API请求失败状态码: {response.status_code}")
except requests.exceptions.RequestException as e:
self.model_list.addItem("无法连接到Ollama API")
logger.error(f"无法连接到Ollama API: {str(e)}")
except json.JSONDecodeError as e:
self.model_list.addItem("API响应格式错误")
logger.error(f"API响应格式错误: {str(e)}")
except Exception as e:
self.model_list.addItem(f"发生错误: {str(e)}")
logger.error(f"发生未知错误: {str(e)}")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = OllamaModelViewer()
window.show()
sys.exit(app.exec())