❓ FAQ
🌐 Q: 為什麼我的本地 OpenAPI 工具伺服器無法從 WebUI 介面訪問?
A: 如果您的工具伺服器在本地運行(例如 http://localhost:8000
),基於瀏覽器的客戶端可能因為 CORS(跨來源資源共享)政策而被限制訪問。
請確保在您的 OpenAPI 伺服器中顯式啟用 CORS 標頭。例如,如果您使用的是 FastAPI,可以添加以下代碼:
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 或者指定您的客戶端來源
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
另外,如果 Open WebUI 是通過 HTTPS 提供服務(例如 https://yourdomain.com
),您的本地伺服器必須滿足以下條件之一:
- 透過同一個域名以 HTTPS 訪問(例如
http://localhost:8000
)。 - 或者在本地主機(127.0.0.1)運行,以便讓瀏覽器對本地開發放寬安全限制。
- 否則,由於瀏覽器的混合內容規則,可能會阻止從 HTTPS 頁面向 HTTP API 發出的不安全請求。
為了在生產環境中通過 HTTPS 安全運行,您的 OpenAPI 伺服器也必須通過 HTTPS 提供服務。
🚀 Q: 我是否必須使用 FastAPI 實現我的伺服器?
A: 不需要! 雖然我們的參考實現是使用 FastAPI 編寫的,因為它簡單易用,但您可以使用任何可以生成有效 OpenAPI(Swagger)規範的框架或語言。一些常見的選擇包括:
- FastAPI (Python)
- Flask + Flask-RESTX (Python)
- Express + Swagger UI (JavaScript/Node)
- Spring Boot (Java)
- Go with Swag 或 Echo
關鍵是確保您的伺服器暴露了一個有效的 OpenAPI 模式,並且它通過 HTTP(S) 進行通信。 在所有端點上設置自定義的 operationId 是很重要的。