Первая проблема заключается в том, что пользовательский интерфейс Swagger в FastAPI показывает старый ответ:

Показанный выше пользовательский интерфейс Swagger обслуживается из URL-адреса Cloud Run /docs, а не из локального экземпляра FastAPI.
Однако должно отображаться сообщение Вы спрашивали: йо, как определено в vc-rag-backend/main.py:
Код: Выделить всё
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from fastapi.responses import JSONResponse
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=False,
allow_methods=["*"], # MUST be *
allow_headers=["*"], # MUST be *
)
class Query(BaseModel):
query: str
@app.post("/rag")
async def rag(data: Query):
return {
"answer": f"You asked: {data.query}",
"sources": []
}
Структура репозитория выглядит следующим образом:
Код: Выделить всё
VCI/
├── main.py (old backend code)
├── vc-rag-backend/
│ ├── main.py (new backend code shown above)
│ ├── Dockerfile
│ └── requirements.txt
к /rag возвращает ответ 405, что приводит к ошибке CORS во внешнем интерфейсе:

Cloud Run развертывается через облако Триггер сборки, подключенный к GitHub. Триггер настроен на использование файла Dockerfile, но я не уверен, создается ли он из корня репозитория или из vc-rag-backend/.
Как устранить эти две проблемы?
Подробнее здесь: https://stackoverflow.com/questions/798 ... 05-fastapi
Мобильная версия