Fogsight API对接需五步:一、确认本地服务运行于http://127.0.0.1:8000;二、正确配置credentials.json中API_KEY与BASE_URL;三、复现前端POST请求结构,含必要headers与cookies;四、可用Docker隔离部署;五、通过反向代理暴露服务并加固安全。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您尝试将雾象Fogsight接入自有系统或服务,但API调用失败或返回异常响应,则可能是由于凭证配置错误、网络策略限制或请求格式不合规。以下是完成API对接的具体步骤:
一、确认API服务模式与接口可用性
Fogsight当前未开放独立HTTP API端点供外部直接调用;其核心交互依赖本地运行的后端服务(由start_fogsight.py启动),所有生成请求均通过浏览器向http://127.0.0.1:8000发起POST请求,且该服务默认仅监听本地回环地址。因此,对接前提是确保调用方与Fogsight服务处于同一运行环境或可建立内网通信。
1、执行python start_fogsight.py后,检查终端是否输出"Uvicorn running on http://127.0.0.1:8000"字样。
2、在浏览器中访问http://127.0.0.1:8000,确认页面正常加载且“生成”按钮可点击。
3、使用curl命令验证接口连通性:curl -X POST http://127.0.0.1:8000/generate -H "Content-Type: application/json" -d '{"topic": "测试"}',观察是否返回JSON格式的task_id。
二、配置credentials.json并验证模型连通性
credentials.json文件控制LLM底层调用能力,若BASE_URL或API_KEY填写错误,会导致生成任务卡在“脚本生成”阶段,表现为前端长时间显示“正在构思”。必须确保所填凭证能被对应模型服务商(如Google Gemini via OpenRouter)真实接受。
1、打开credentials.json文件,确认"API_KEY"字段值为有效密钥,不含多余空格或引号转义错误。
2、检查"BASE_URL"是否指向兼容OpenAI SDK的兼容接口,例如OpenRouter的https://openrouter.ai/api/v1或Gemini的代理地址。
3、在终端执行python -c "import requests; print(requests.get('YOUR_BASE_URL', headers={'Authorization': 'Bearer YOUR_API_KEY'}).status_code)",替换其中URL与KEY,验证基础连通性。
三、模拟前端请求构造合法POST载荷
Fogsight前端通过标准表单提交触发后端任务,后端未暴露RESTful资源路径,需复现其请求结构才能实现程序化调用。关键字段包括topic、language、style等,且必须携带CSRF token(若启用安全策略)或匹配session上下文。
1、在浏览器开发者工具Network面板中,点击“生成”后捕获/generate请求,右键选择“Copy as cURL”,粘贴至文本编辑器查看完整headers与data。
2、提取X-CSRFToken(若存在)或sessionid Cookie值,将其加入后续自动化请求的headers中。
3、构造Python requests调用示例:requests.post("http://127.0.0.1:8000/generate", json={"topic": "量子纠缠"}, cookies={"sessionid": "abc123"})。
四、使用Docker绕过本地环境依赖
当目标服务器无法安装Python 3.9+或存在权限限制时,Docker提供隔离运行环境,避免因系统级依赖冲突导致API不可达。镜像构建过程已预置全部依赖与启动脚本,仅需挂载配置文件即可生效。
1、下载项目源码后进入根目录,确认存在Dockerfile与docker-compose.yml文件。
2、执行docker-compose up -d启动服务,等待日志显示"Application startup complete"。
3、修改宿主机上的credentials.json,然后通过docker cp credentials.json fogsight-web:/app/credentials.json同步至容器内指定路径。
五、通过反向代理暴露内网服务供外部调用
若需从其他机器或云函数触发Fogsight生成任务,必须解除127.0.0.1绑定限制,并配置Nginx/Apache反向代理。直接修改Uvicorn启动参数中的host为0.0.0.0存在安全风险,应通过代理层添加访问控制与速率限制。
1、创建Nginx配置片段,设置proxy_pass http://127.0.0.1:8000,并启用proxy_set_header Host $host以保留原始host头。
2、在Uvicorn启动命令中追加--host 0.0.0.0 --port 8000参数,使服务监听全接口。
3、重启Nginx与Fogsight服务,使用curl -X POST http://YOUR_SERVER_IP/generate -d '{"topic":"测试"}'验证跨机调用是否成功。










