server.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import sys,os
  2. current_path = os.getcwd()
  3. sys.path.append(current_path+"\\web")
  4. sys.path.append(current_path+"\\agent")
  5. import json
  6. from fastapi import FastAPI
  7. from fastapi.middleware.cors import CORSMiddleware
  8. def save_api_spec(app: FastAPI):
  9. """
  10. 保存 FastAPI 应用的 OpenAPI 规范到文件中。
  11. """
  12. from fastapi.openapi.utils import get_openapi
  13. import yaml
  14. openapi_schema = get_openapi(
  15. title="FastAPI - Swagger UI",
  16. version="1.0.0",
  17. routes=app.routes
  18. )
  19. print(app.routes)
  20. # 将 JSON 转换为 YAML
  21. yaml_data = yaml.dump(openapi_schema, sort_keys=False)
  22. # 保存为 YAML 文件
  23. with open("openapi.yaml", "w") as f:
  24. f.write(yaml_data)
  25. print("OpenAPI YAML 文件已生成:openapi.yaml")
  26. import logging
  27. logging.basicConfig(level=logging.INFO)
  28. handler = logging.FileHandler('/app/logs/api-server.log', mode='w',encoding="utf-8")
  29. handler.setLevel(logging.INFO)
  30. formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  31. handler.setFormatter(formatter)
  32. logging.getLogger().addHandler(handler)
  33. app = FastAPI(root_path="/open_platform")
  34. # 允许所有来源的跨域请求
  35. app.add_middleware(
  36. CORSMiddleware,
  37. allow_origins=["*"],
  38. allow_credentials=True,
  39. allow_methods=["*"],
  40. allow_headers=["*"],
  41. )
  42. from router.task_router import task_router
  43. app.include_router(task_router)
  44. from router.file_router import file_router
  45. app.include_router(file_router)
  46. from router.user_router import user_router
  47. app.include_router(user_router)
  48. # from router.graph_mgr_router import graph_mgr_router
  49. # app.include_router(graph_mgr_router)
  50. from router.kb_router import kb_router
  51. app.include_router(kb_router)
  52. #from router.graph_router import graph_router
  53. #app.include_router(graph_router)
  54. #app.include_router(dify_kb_router)
  55. from router.knowledge_base_router import knowledge_base_router
  56. app.include_router(knowledge_base_router)
  57. save_api_spec(app)