{"id":25760344,"url":"https://github.com/straydragon/dify-openapi","last_synced_at":"2025-02-26T18:19:01.172Z","repository":{"id":279576025,"uuid":"937133908","full_name":"StrayDragon/dify-openapi","owner":"StrayDragon","description":"Dify API =\u003e OpenAPI Schema","archived":false,"fork":false,"pushed_at":"2025-02-26T09:43:22.000Z","size":424,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T10:19:24.460Z","etag":null,"topics":["dify","openapi"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StrayDragon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-22T12:20:00.000Z","updated_at":"2025-02-26T09:43:24.000Z","dependencies_parsed_at":"2025-02-26T10:29:39.545Z","dependency_job_id":null,"html_url":"https://github.com/StrayDragon/dify-openapi","commit_stats":null,"previous_names":["straydragon/dify-openapi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StrayDragon%2Fdify-openapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StrayDragon%2Fdify-openapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StrayDragon%2Fdify-openapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StrayDragon%2Fdify-openapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StrayDragon","download_url":"https://codeload.github.com/StrayDragon/dify-openapi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240907935,"owners_count":19876702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dify","openapi"],"created_at":"2025-02-26T18:19:00.474Z","updated_at":"2025-02-26T18:19:01.167Z","avatar_url":"https://github.com/StrayDragon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dify x OpenAPI\n\n[![Python Version](https://img.shields.io/badge/python-3.9%2B-blue)](https://www.python.org)\n[![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![Package Manager: uv](https://img.shields.io/badge/package%20manager-uv-black)](https://github.com/astral-sh/uv)\n[![codecov](https://codecov.io/gh/straydragon/dify-openapi/branch/main/graph/badge.svg)](https://codecov.io/gh/straydragon/dify-openapi)\n\n\n\u003cdiv align=\"center\"\u003e\n\n[English](./doc/README.en.md) | 中文\n\n\u003c/div\u003e\n\n提供 [Dify](https://github.com/langgenius/dify) API 的 OpenAPI Schema，可以使用 [OpenAPI UI](https://github.com/swagger-api/swagger-ui) 预览或使用 [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator) 生成客户端\n\n## Swagger UI 在线查看\n\n- [知识库 - SwaggerUI](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/StrayDragon/dify-openapi/refs/heads/main/schema/datasets.zh.yaml)\n- [聊天应用(聚合) - SwaggerUI](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/StrayDragon/dify-openapi/refs/heads/main/schema/app.zh.yaml)\n\n\n## 接口列表\n\n\u003e [!tip]\n\u003e 这里指至少可以通过一次测试用例请求, 如果你发现有哪些API错误, 欢迎提issue或者pr!\n\n- 知识库: [OpenAPI Schema(中文)](./schema/datasets.zh.yaml) | [OpenAPI Schema(English)](./schema/datasets.en.yaml) | [官方文档源码](https://github.com/langgenius/dify/tree/0.15.3/web/app/(commonLayout)/datasets/template)\n  - [x] POST /datasets - 创建空知识库\n  - [x] GET /datasets/{dataset_id}/documents - 获取文档列表\n  - [x] DELETE /datasets/{dataset_id}/documents/{document_id} - 删除文档\n  - [x] POST /datasets/{dataset_id}/document/create-by-text - 通过文本创建文档\n  - [x] POST /datasets/{dataset_id}/document/create-by-file - 通过文件创建文档\n  - [x] PUT /datasets/{dataset_id}/documents/{document_id} - 更新文档\n  - [x] POST /datasets/{dataset_id}/documents/{document_id}/update-by-file - 通过文件更新文档\n  - [x] GET /datasets/{dataset_id}/documents/{document_id}/upload-file - 获取上传文件\n  - [x] GET /datasets/{dataset_id}/documents/{batch}/indexing-status - 获取文档嵌入状态\n  - [x] GET /datasets/{dataset_id}/documents/{document_id}/segments - 查询文档分段\n  - [x] POST /datasets/{dataset_id}/documents/{document_id}/segments - 创建文档分段\n  - [x] DELETE /datasets/{dataset_id}/documents/{document_id}/segments/{segment_id} - 删除文档分段\n  - [x] POST /datasets/{dataset_id}/documents/{document_id}/segments/{segment_id} - 更新文档分段\n\n- 聊天应用(聚合): [OpenAPI Schema(中文)](./schema/app.zh.yaml) | [OpenAPI Schema(English)](./schema/app.en.yaml) | [官方文档源码](https://github.com/langgenius/dify/tree/0.15.3/web/app/components/develop/template)\n  - [x] POST /completion-messages - 发送消息(文本生成型应用)\n  - [x] POST /chat-messages - 发送对话消息(对话型应用)\n  - [x] POST /workflows/run - 执行工作流(工作流应用)\n  - [x] POST /files/upload - 上传文件\n  - [x] POST /messages/{message_id}/feedbacks - 消息反馈\n  - [x] POST /conversations/{conversation_id}/name - 会话重命名\n  - [x] DELETE /conversations/{conversation_id} - 删除会话\n  - [x] GET /messages - 获取会话历史消息\n  - [x] GET /info - 获取应用基本信息\n  - [x] GET /parameters - 获取应用参数\n  - [ ] POST /audio-to-text - 语音转文字\n  - [ ] POST /text-to-audio - 文字转语音\n\n\n## 项目结构\n\n```\n.\n├── schema/           # OpenAPI schema\n│   ├── app.zh.yaml      # 应用 API\n│   └── datasets.zh.yaml # 知识库 API\n├── src/             # 生成的客户端代码\n├── tests/           # 通过测试客户端代码, 校验 schema/* 是否正确\n└── configs/         # 代码生成器配置\n```\n\n## 贡献 \u0026 本地开发\n\n安装这些工具：\n\n- [uv](https://github.com/astral-sh/uv) - Python 包管理器\n- [just](https://github.com/casey/just) - 替代 `Makefile`\n- [ruff](https://github.com/astral-sh/ruff) - Python 代码格式化和检查工具\n\n\n### 开发流程\n\n#### 维护单元测试\n\n1. 安装依赖：\n```bash\nuv venv \u0026\u0026 uv pip install -e \".[dev]\"\n```\n\n2. 生成客户端代码：\n```bash\njust gen-client\n```\n\n3. 预览 API 文档：\n```bash\njust run-openapi-ui\n```\n\n4. 编辑环境变量：\n\n```\ncp .env.example .env\n# 填写相关的变量\n```\n\n5. 运行测试：\n```bash\njust test\n```\n6. 提交 PR\n\n#### 维护多语言支持\n\n1. 新增/修改语言的 overlay 文件, 例如 `./schema/overlays/app.en.overlay.yaml`\n2. 运行 `just apply-i18n-overlay-to-openapi-schema` 生成对应语言的schema (如果是新的语言, 请检查 [justfile](./justfile) 中是否处理了对应的名字)\n3. 运行 `just run-openapi-ui` 预览 API 文档\n4. 提交 PR\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstraydragon%2Fdify-openapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstraydragon%2Fdify-openapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstraydragon%2Fdify-openapi/lists"}