本次实验以LP报告为例 check here
本项目利用了
mysql做持久化,表的结构可能有点冗余,那是为了便于之后扩展,本项目用Azure Blob Service以便于生成的pdf能被公网访问
AZURE_DEPLOYMENT="gpt-4.1"
AZURE_ENDPOINT="https://xxx.openai.azure.com"
API_VERSION="2025-01-01-preview"
API_KEY=""
TAVILY_API_KEY=tvly-prod-
JINA_READER_API_KEY=
STORE_PATH=E:\\codes\\langchain-langgraph\\archive\\reportsArchive
MERGED_PATH=E:\\codes\\langchain-langgraph\\archive\\reportsArchiveMerged
AZURE_BLOB_CONNECT_STRING=
AZURE_BLOB_CONTAINER=
LOCAL_DB_HOST=localhost
LOCAL_DB_PORT=3306
LOCAL_DB_DATABASE=
LOCAL_DB_USER=
LOCAL_DB_PASSWORD=
PANDOC_RUNTIME=windows #windows表示是开发环境,意味着要通过docker容器连接到pandoc,container表是是在最终的docker镜像中,镜像中以预装了pandocdocker push ridiculousbuffalo/pandocchinese:latest修改pandoc.DockerFile,安装字体即可,可以在parseUtil.py处修改镜像名
| 字段 | 类型 | 说明 |
|---|---|---|
| code | int | 0=成功, 1=失败 |
| msg | str | 描述信息 |
| data | Any | 返回的数据对象 |
{
"code": 0,
"msg": "success",
"data": {
...
}
}| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 报告ID |
| groupId | string | 任务组ID |
| markdown | string | Markdown内容(可选) |
| downloadLink | string | 下载链接(可选) |
| zipDownloadLink | string | ZIP包下载链接(可选) |
| 字段 | 类型 | 说明 |
|---|---|---|
| choice | string | 选择的类型(如"LP") |
| detail | string | 详情(逗号分隔的公司等信息) |
| string | 接收报告的邮箱 |
GET /
测试服务是否可用。
无
{
"Hello": "World"
}GET /task/getFinishTask
查询所有需要发送的任务列表。
无
{
"code": 0,
"msg": "success",
"data": [
{
"id": "rpt1",
"groupId": "grp1",
"markdown": "...",
"downloadLink": "http://xx",
"zipDownloadLink": "http://xx.zip"
},
...
]
}{
"code": 1,
"msg": "异常信息",
"data": null
}POST /report/gen
异步生成报告并发送邮件(如有需要)。只支持 choice=="LP" 时处理,其他choice类型请扩展代码。
请求体为FrontEndFormDTO:
| 字段 | 类型 | 说明 |
|---|---|---|
| choice | string | 请选择"LP" |
| detail | string | 支持逗号或中文逗号分隔的公司名,最多6个。 |
| string | 接收报告的邮箱 |
{
"choice": "LP",
"detail": "阿里巴巴,腾讯,华为,字节跳动,美团,小米",
"email": "your@email.com"
}- 成功响应
{ "code": 0, "msg": "success", "data": null } - 失败响应
{ "code": 1, "msg": "错误信息", "data": null }
- CORS: 已允许任意源跨域。
- 任务是异步的:生成报告接口并不会阻塞,任务会在后台异步处理。
- 最大公司数:当前逻辑最多处理6家公司,如超出将自动截断。
- choice 可拓展:当前仅识别"LP",如需支持更多类型请在代码中添加分支逻辑。
| code | 说明 |
|---|---|
| 0 | 成功 |
| 1 | 失败/异常 |
Dockerfile 提供一个在python镜像中安装pandoc环境的示例
