Files
QQclawdbot-know-how/api_client.py
xiaji 0ab3d4f9c1 Initial commit: 知识库管理器应用
- 实现基于 PySide6 的 GUI 界面
- 集成 FastAPI 知识库服务器 API
- 支持查看、编辑、提交 Markdown 文件
- 包含完整的 pytest-qt 测试套件
- 添加功能列表文档
2026-01-30 12:03:12 +08:00

43 lines
1.6 KiB
Python

import requests
from typing import List, Optional
class KnowledgeBaseAPI:
def __init__(self, base_url: str):
self.base_url = base_url.rstrip('/')
def get_file_list(self) -> List[str]:
"""获取服务器上的文件列表"""
try:
response = requests.get(f"{self.base_url}/list", timeout=10)
response.raise_for_status()
return response.json()
except requests.RequestException as e:
raise Exception(f"获取文件列表失败: {str(e)}")
def get_file(self, filename: str) -> str:
"""获取文件内容"""
try:
response = requests.get(f"{self.base_url}/{filename}/get", timeout=10)
response.raise_for_status()
return response.text
except requests.RequestException as e:
raise Exception(f"获取文件 {filename} 失败: {str(e)}")
def post_file(self, filename: str, content: str) -> bool:
"""上传文件内容"""
try:
files = {'file': (filename, content, 'text/markdown')}
response = requests.post(f"{self.base_url}/{filename}/post", files=files, timeout=10)
response.raise_for_status()
return True
except requests.RequestException as e:
raise Exception(f"上传文件 {filename} 失败: {str(e)}")
def test_connection(self) -> bool:
"""测试服务器连接"""
try:
response = requests.get(f"{self.base_url}/list", timeout=5)
return response.status_code == 200
except requests.RequestException:
return False