From b5e55c81d4dc22d3b1f6ffe4078558710d86626c Mon Sep 17 00:00:00 2001 From: t0ng7u Date: Thu, 21 Aug 2025 12:42:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=A4=9D=20docs(README):=20Introduction?= =?UTF-8?q?=20to=20New=20Partners?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en.md | 24 +++++++++++++++++++++++- README.md | 24 +++++++++++++++++++++++- docs/api/web_api.md | 8 +++++--- docs/images/aliyun.png | Bin 0 -> 5102 bytes docs/images/cherry-studio.png | Bin 0 -> 11339 bytes docs/images/io-net.png | Bin 0 -> 2016 bytes docs/images/pku.png | Bin 0 -> 12247 bytes docs/images/ucloud.png | Bin 0 -> 11630 bytes 8 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 docs/images/aliyun.png create mode 100644 docs/images/cherry-studio.png create mode 100644 docs/images/io-net.png create mode 100644 docs/images/pku.png create mode 100644 docs/images/ucloud.png diff --git a/README.en.md b/README.en.md index b4ae921a..b531633d 100644 --- a/README.en.md +++ b/README.en.md @@ -100,7 +100,7 @@ This version supports multiple models, please refer to [API Documentation-Relay For detailed configuration instructions, please refer to [Installation Guide-Environment Variables Configuration](https://docs.newapi.pro/installation/environment-variables): - `GENERATE_DEFAULT_TOKEN`: Whether to generate initial tokens for newly registered users, default is `false` -- `STREAMING_TIMEOUT`: Streaming response timeout, default is 120 seconds +- `STREAMING_TIMEOUT`: Streaming response timeout, default is 300 seconds - `DIFY_DEBUG`: Whether to output workflow and node information for Dify channels, default is `true` - `FORCE_STREAM_OPTION`: Whether to override client stream_options parameter, default is `true` - `GET_MEDIA_TOKEN`: Whether to count image tokens, default is `true` @@ -189,6 +189,28 @@ If you have any questions, please refer to [Help and Support](https://docs.newap - [Issue Feedback](https://docs.newapi.pro/support/feedback-issues) - [FAQ](https://docs.newapi.pro/support/faq) +

🤝 Trusted Partners

+

 

+

No particular order

+

+ Cherry Studio + Peking University + UCloud + Alibaba Cloud + IO.NET +

+

 

+ ## 🌟 Star History [![Star History Chart](https://api.star-history.com/svg?repos=Calcium-Ion/new-api&type=Date)](https://star-history.com/#Calcium-Ion/new-api&Date) diff --git a/README.md b/README.md index 05423548..62b88f5a 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ New API提供了丰富的功能,详细特性请参考[特性说明](https://do 详细配置说明请参考[安装指南-环境变量配置](https://docs.newapi.pro/installation/environment-variables): - `GENERATE_DEFAULT_TOKEN`:是否为新注册用户生成初始令牌,默认为 `false` -- `STREAMING_TIMEOUT`:流式回复超时时间,默认120秒 +- `STREAMING_TIMEOUT`:流式回复超时时间,默认300秒 - `DIFY_DEBUG`:Dify渠道是否输出工作流和节点信息,默认 `true` - `FORCE_STREAM_OPTION`:是否覆盖客户端stream_options参数,默认 `true` - `GET_MEDIA_TOKEN`:是否统计图片token,默认 `true` @@ -188,6 +188,28 @@ docker run --name new-api -d --restart always -p 3000:3000 -e SQL_DSN="root:1234 - [反馈问题](https://docs.newapi.pro/support/feedback-issues) - [常见问题](https://docs.newapi.pro/support/faq) +

🤝 我们信任的合作伙伴

+

 

+

排名不分先后

+

+ Cherry Studio + 北京大学 + UCloud 优刻得 + 阿里云 + IO.NET +

+

 

+ ## 🌟 Star History [![Star History Chart](https://api.star-history.com/svg?repos=Calcium-Ion/new-api&type=Date)](https://star-history.com/#Calcium-Ion/new-api&Date) diff --git a/docs/api/web_api.md b/docs/api/web_api.md index ffac74c5..e64fd359 100644 --- a/docs/api/web_api.md +++ b/docs/api/web_api.md @@ -1,6 +1,6 @@ -# One API – Web 界面后端接口文档 +# New API – Web 界面后端接口文档 -> 本文档汇总了 **One API** 后端提供给前端 Web 界面的全部 REST 接口(不含 *Relay* 相关接口)。 +> 本文档汇总了 **New API** 后端提供给前端 Web 界面的全部 REST 接口(不含 *Relay* 相关接口)。 > > 接口前缀统一为 `https://`,以下仅列出 **路径**、**HTTP 方法**、**鉴权要求** 与 **功能简介**。 > @@ -62,6 +62,8 @@ | GET | /api/user/groups | 公开 | 列出所有分组(无鉴权版) | ### 5.2 用户自身操作 (需登录) +| 方法 | 路径 | 鉴权 | 说明 | +|------|------|------|------| | GET | /api/user/self/groups | 用户 | 获取自己所在分组 | | GET | /api/user/self | 用户 | 获取个人资料 | | GET | /api/user/models | 用户 | 获取模型可见性 | @@ -192,4 +194,4 @@ --- -> **更新日期**:2025.07.17 \ No newline at end of file +> **更新日期**:2025.07.17 diff --git a/docs/images/aliyun.png b/docs/images/aliyun.png new file mode 100644 index 0000000000000000000000000000000000000000..6266bfbff3603b0969ee557143a5ec18e7d9e045 GIT binary patch literal 5102 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 A1ONa4 literal 0 HcmV?d00001 diff --git a/docs/images/io-net.png b/docs/images/io-net.png new file mode 100644 index 0000000000000000000000000000000000000000..fb47534d3d60553ab7a0b2331ead32c652e30a2f GIT binary patch literal 2016 zcmb8w`6CmI1IO{LHPw1ZjA>%N(d1n5j5$lr#U!-l>z*NnCgq&FT(Q2WSVrN&3d_;s zNM=QO9%qi4F!mId2b&|d%<=U76P_PF@6Vs`%5rhGmxjP0002N5>tN&h^Z)ocmxEG2 z>lJ2N4*(pf#@bl9$IzGQScaD^G`&+`Y=V4@NdskOuO}n3A=F`vzB`$HH(THKXhdGF z{uIXML@Gx2;E9oh5$GV>Mz=PGBn57>ek&25$r9ybjQ8u?1P3QvJcN9Zb4iy3%5 z7^66@xT|_=PMM8h+p}-{Men1_4@F+&k^FpnFTD@p>F^3xq7@i0!D{4X9+W3Lq2ty$ zmcmKtOa>)4T~$3$GQX-|)f?p6 zWMRan$s{(F>;ymt#uz3{s*Jp!?STi!|l!Qp!+x+hfyFd7~WY*~GZPwv5UG-|UI_)^(&7u8d zRMk1=sf~O$Q-Gs{qa<#M=DAt z3WzM|w1|5NY?T%lV7fN4?JEa?r5en{J2Nl!<-3oyDKhtDrVdi9O!8EWvjEdl)Nd;$ zg>zSV9)3bHiz@wnqlku1-|(&8h9w$b}ViQA= zN?r8kp3_OBX5cr_wIlt{jyn$W*})}QIk8b`#nE4{WQeRy7hyB8P@&|Y=SOzA*JY=a zi(UA!s3Fk>kXTk+D8S8~`O2*J3mmROn zrYi9O)CTcpAaAT2zW>?!=NlQfuPNsGTb4x1k&WjuGh@}iL`G<=oNVBly^{nPP4(zm zH}Ez1$yn+==N0$J1y1^~jjvZ~-h@t+NZyz`lwU&+Aw&a8q#RoPZlG_l{Of z`A>sCGuwj4uH~Dm%&ID~_T9U~eT+4F5@F=$KW7}`gHt>aFs?yXS#iMd3sQ?MKjx35 zlAzl2gIhAX*{d4!x8gJ^5EMTOgnncSyq#8uwDxFp41#;+Ax<)tSmn328tXVO)sBI| z5tPjuP)~4wi>^qSW^rTO-Y^o-mZ(`fl{#%BfjHZQV_`YrH z&~2~gFmR2qhYhv?FOW8`!?Kjo6npfaLZi@)?K^AJX%qw%Hg?V68stmN6;#U$my3xl zqj5Dc?fiL=W7ckZ@w3I`>U6C!O5hl@n~*cwz@-;!2`6)J)B}GdT#4N``N(yaz!Uc0 zob%He-dhQS_0_uw`41#W3laWNnIQzShH9|pQoU0<+_Wm*STJ{GHk&60sKi<>p|I<8 zQ~yIw@Z9zK58oY@lyEVKNr6m*g$U?VHq~)O6W}}gXY;$>iNhNmu6Xcj zZqT&WLRAx9%;e~?^}34^)c>p~JW?U1LvuH_aiPFINl1b?$bQ~szL z+$ahjA9%FEyCWC2K?|OFu;YtkvzjL_NWNv6MJX())2xrZ{=wJb5SI|f+b2bRI8(t_8GH`eQwSWH?b68;yw7@xZJ7WMA_)~5G*4EjEdEPJe EAFe&he*gdg literal 0 HcmV?d00001 diff --git a/docs/images/pku.png b/docs/images/pku.png new file mode 100644 index 0000000000000000000000000000000000000000..a058c3ce2338608f24c8051925850d89d71dc926 GIT binary patch literal 12247 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 Qc2)xrd3Cu;8MCne1MB)l@c;k- literal 0 HcmV?d00001 From 7c058bfee341396d6fb9df359f8e76cdcdeb994e Mon Sep 17 00:00:00 2001 From: t0ng7u Date: Thu, 21 Aug 2025 12:51:49 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A4=9D=20docs(README):=20Enhancing=20?= =?UTF-8?q?Partner=20Layout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en.md | 44 ++++++++++++++++++++++---------------------- README.md | 44 ++++++++++++++++++++++---------------------- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/README.en.md b/README.en.md index b531633d..69fd32f8 100644 --- a/README.en.md +++ b/README.en.md @@ -40,6 +40,28 @@ > - Users must comply with OpenAI's [Terms of Use](https://openai.com/policies/terms-of-use) and **applicable laws and regulations**, and must not use it for illegal purposes. > - According to the [《Interim Measures for the Management of Generative Artificial Intelligence Services》](http://www.cac.gov.cn/2023-07/13/c_1690898327029107.htm), please do not provide any unregistered generative AI services to the public in China. +

🤝 Trusted Partners

+

 

+

No particular order

+

+ Cherry Studio + Peking University + UCloud + Alibaba Cloud + IO.NET +

+

 

+ ## 📚 Documentation For detailed documentation, please visit our official Wiki: [https://docs.newapi.pro/](https://docs.newapi.pro/) @@ -189,28 +211,6 @@ If you have any questions, please refer to [Help and Support](https://docs.newap - [Issue Feedback](https://docs.newapi.pro/support/feedback-issues) - [FAQ](https://docs.newapi.pro/support/faq) -

🤝 Trusted Partners

-

 

-

No particular order

-

- Cherry Studio - Peking University - UCloud - Alibaba Cloud - IO.NET -

-

 

- ## 🌟 Star History [![Star History Chart](https://api.star-history.com/svg?repos=Calcium-Ion/new-api&type=Date)](https://star-history.com/#Calcium-Ion/new-api&Date) diff --git a/README.md b/README.md index 62b88f5a..45b04834 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,28 @@ > - 使用者必须在遵循 OpenAI 的[使用条款](https://openai.com/policies/terms-of-use)以及**法律法规**的情况下使用,不得用于非法用途。 > - 根据[《生成式人工智能服务管理暂行办法》](http://www.cac.gov.cn/2023-07/13/c_1690898327029107.htm)的要求,请勿对中国地区公众提供一切未经备案的生成式人工智能服务。 +

🤝 我们信任的合作伙伴

+

 

+

排名不分先后

+

+ Cherry Studio + 北京大学 + UCloud 优刻得 + 阿里云 + IO.NET +

+

 

+ ## 📚 文档 详细文档请访问我们的官方Wiki:[https://docs.newapi.pro/](https://docs.newapi.pro/) @@ -188,28 +210,6 @@ docker run --name new-api -d --restart always -p 3000:3000 -e SQL_DSN="root:1234 - [反馈问题](https://docs.newapi.pro/support/feedback-issues) - [常见问题](https://docs.newapi.pro/support/faq) -

🤝 我们信任的合作伙伴

-

 

-

排名不分先后

-

- Cherry Studio - 北京大学 - UCloud 优刻得 - 阿里云 - IO.NET -

-

 

- ## 🌟 Star History [![Star History Chart](https://api.star-history.com/svg?repos=Calcium-Ion/new-api&type=Date)](https://star-history.com/#Calcium-Ion/new-api&Date)