From bb34e29f33cd257d5215434484a3e620e6f8d494 Mon Sep 17 00:00:00 2001 From: tianzhou Date: Sun, 25 Jun 2023 11:47:46 +0800 Subject: [PATCH] chore: fix doc and add more error FAQ --- README.es-ES.md | 26 ++++++++++++++++---- README.md | 32 +++++++++++++++++++------ README.zh-CN.md | 33 +++++++++++++++++++------- public/error-exceed-openai-quota.webp | Bin 0 -> 8580 bytes public/error-network.webp | Bin 0 -> 8572 bytes 5 files changed, 71 insertions(+), 20 deletions(-) create mode 100644 public/error-exceed-openai-quota.webp create mode 100644 public/error-network.webp diff --git a/README.es-ES.md b/README.es-ES.md index 05c3d53..cd15af9 100644 --- a/README.es-ES.md +++ b/README.es-ES.md @@ -21,8 +21,8 @@ SQL Chat es un cliente SQL basado en chat, que utiliza lenguaje natural para com ## ¿Por que? A medida que entramos en la [Era de las Herramientas de Desarrollo 2.0](https://www.sequoiacap.com/article/ai-powered-developer-tools/), -existe una gran oportunidad para reconstruir las herramientas existentes utilizando una interfaz basada en chat. El cliente SQL -no es una excepción. En lugar de navegar a través de varias interfaces de usuario, una interfaz basada en chat es +existe una gran oportunidad para reconstruir las herramientas existentes utilizando una interfaz basada en chat. El cliente SQL +no es una excepción. En lugar de navegar a través de varias interfaces de usuario, una interfaz basada en chat es más intuitiva. Por supuesto, solo si funciona, y nuestro objetivo es ofrecer esa experiencia. ## ¿Como? @@ -40,7 +40,7 @@ Vea la [Política de Privacidad de SQL Chat](https://sqlchat.ai/privacy). ## IP Whitelisting -Si usas [sqlchat.ai](https://sqlchat.ai) para conectarte a tu base de datos, debes agregar 0.0.0.0 (permitir todas las conexiones) a la IP de la lista blanca de la base de datos. Porque sqlchat.AI está alojado en +Si usas [sqlchat.ai](https://sqlchat.ai) para conectarte a tu base de datos, debes agregar 0.0.0.0 (permitir todas las conexiones) a la IP de la lista blanca de la base de datos. Porque sqlchat.AI está alojado en [Vercel](https://vercel.com/) el cual [usa IP dinámica](https://vercel.com/guides/how-to-allowlist-deployment-ip-address). Si esto le preocupa, considere la opción de hospedaje propio a continuación. ## Hospedaje propio con Docker @@ -57,7 +57,7 @@ docker run --name sqlchat --platform linux/amd64 -env NEXTAUTH_SECRET=xxx -p 300 ### Variables relacionadas con la base de datos: -- `NEXT_PUBLIC_DATABASE_LESS`: Establézcalo en `true` para iniciar SQL Chat en modo sin base de datos. Esto +- `NEXT_PUBLIC_DATABASE_LESS`: Establézcalo en `true` para iniciar SQL Chat en modo sin base de datos. Esto desactivara las siguientes funciones: 1. Sistema de cuentas. 2. Ejecución de Cuota por Usuario. @@ -176,7 +176,23 @@ Este proyecto está bajo la Licencia BSL. Consulte el archivo [LICENSE](LICENSE)
¿Siempre dice que tengo un problema de conexión de red?

-Asegúrese de tener una conexión de red estable que pueda acceder al endpoint de la API de OpenAI. Si no puede acceder al endpoint de la API de OpenAI, puede intentar configurar el `OPENAI_API_ENDPOINT` en la UI o como una variable de entorno. +Asegúrese de tener una conexión de red estable que pueda acceder al endpoint de la API de OpenAI. + +```bash +ping api.openai.com +``` + +Si no puede acceder al endpoint de la API de OpenAI, puede intentar configurar el `OPENAI_API_ENDPOINT` en la UI o como una variable de entorno. + +

+
+ +
You exceeded your current quota, please check your plan and billing details +

+ +![openai quota](https://raw.githubusercontent.com/sqlchat/sqlchat/main/public/error-exceed-openai-quota.webp) + +Su clave OpenAI se ha quedado sin cuota. Por favor revise su [cuenta de OpenAI ](https://platform.openai.com/account/api-keys).

diff --git a/README.md b/README.md index 6ae3e55..beb1ab3 100644 --- a/README.md +++ b/README.md @@ -107,15 +107,15 @@ docker run --name sqlchat --platform linux/amd64 --env NEXTAUTH_SECRET=xxx --env 1. Set up database schema - ```bash - pnpm prisma migrate dev - ``` + ```bash + pnpm prisma migrate dev + ``` 1. (Optional) Seed data - ```bash - pnpm prisma db seed - ``` + ```bash + pnpm prisma db seed + ``` ## Star History @@ -176,7 +176,25 @@ This project is under the BSL License. See the [LICENSE](LICENSE) file for the f
It always says that I have a network connection issue?

-Please make sure you have a stable network connection which can access the OpenAI API endpoint. If you cannot access the OpenAI API endpoint, you can try to set the `OPENAI_API_ENDPOINT` in UI or environment variable. +![network error](https://raw.githubusercontent.com/sqlchat/sqlchat/main/public/error-network.webp) + +Please make sure you have a stable network connection which can access the OpenAI API endpoint. + +```bash +ping api.openai.com +``` + +If you cannot access the OpenAI API endpoint, you can try to set the `OPENAI_API_ENDPOINT` in UI or environment variable. + +

+
+ +
You exceeded your current quota, please check your plan and billing details +

+ +![openai quota](https://raw.githubusercontent.com/sqlchat/sqlchat/main/public/error-exceed-openai-quota.webp) + +Your OpenAI Key has run out of quota. Please check your [OpenAI account](https://platform.openai.com/account/api-keys).

diff --git a/README.zh-CN.md b/README.zh-CN.md index 077d29d..9c92b29 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -101,18 +101,17 @@ docker run --name sqlchat --platform linux/amd64 --env NEXTAUTH_SECRET=xxx --env 在 `.env` 文件中, 将连接字符串分配给环境变量 `DATABASE_URL` 和 `DATABASE_DIRECT_URL`。至于需要两个 URL 的原因[见此](https://www.prisma.io/docs/data-platform/data-proxy/prisma-cli-with-data-proxy#set-a-direct-database-connection-url-in-your-prisma-schema). - 1. 设置数据库 schema - ```bash - pnpm prisma migrate dev - ``` +```bash +pnpm prisma migrate dev +``` 1. 初始化数据(可选) - ```bash - pnpm prisma db seed - ``` +```bash +pnpm prisma db seed +``` ## Star 历史 @@ -173,7 +172,25 @@ docker run --name sqlchat --platform linux/amd64 --env NEXTAUTH_SECRET=xxx --env
它总是说我有网络连接问题?

-请确保您有一个稳定的网络连接,可以访问 OpenAI API 端点。如果您无法访问 OpenAI API 端点,您可以尝试在 UI 或环境变量中设置 `OPENAI_API_ENDPOINT`。 +![network error](https://raw.githubusercontent.com/sqlchat/sqlchat/main/public/error-network.webp) + +请确保您有一个稳定的网络连接,可以访问 OpenAI API 端点。 + +```bash +ping api.openai.com +``` + +如果您无法访问 OpenAI API 端点,您可以尝试在 UI 或环境变量中设置 `OPENAI_API_ENDPOINT`。 + +

+
+ +
You exceeded your current quota, please check your plan and billing details +

+ +![openai quota](https://raw.githubusercontent.com/sqlchat/sqlchat/main/public/error-exceed-openai-quota.webp) + +这个表示你自己提供的 OpenAI Key 的 Quota 没有了

diff --git a/public/error-exceed-openai-quota.webp b/public/error-exceed-openai-quota.webp new file mode 100644 index 0000000000000000000000000000000000000000..0cae08ab0deb3829c0a77166a551bb9a4eb4e1f0 GIT binary patch literal 8580 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 literal 0 HcmV?d00001 diff --git a/public/error-network.webp b/public/error-network.webp new file mode 100644 index 0000000000000000000000000000000000000000..9c35ffd9d84fb0deceb717d98639bc4d2fe2366c GIT binary patch literal 8572 zcma)gV{j(SwsmaVc4lJRwr$(VlVoDswr$&(*w)0>#CX2@o;tVce7Ek8+kbl1s$E@s zt=_Aut5u{WB-}_rKs3cglr)sMNUZ(~J5_vHgM$hrO6AE>mXH;Zu}LR1put)? zeEMdVJ6bfu@Z7!+E{SOMp6z{?`-|L?e=R&gf7oA40tJ`bMdQB=jgfB*ANT_V?Rxoo zqXfJE2Kc}3N8H~&?al*-fNuBx!|6p|<4}MJJKu@lfM0v(exSfyp#4`AkoR`#D*B~(Bm0FM_}WH?RBH^2 z>QpitKt{;y!ZQ0^5G@($M51$y++RLHE1ajb1G`tXXuvkDbK!0aBNZJ=<)+8e8bTpH zl+43GsM$1x75>W}=g+{^FRJ!)O9){lOH6%%TWb<^=nD;~cAZBP2b_F!jak%@(`I~b zgRPF5?lq6~E)SoTX%p}`a97p|W*L1SFclO-etXni0>o7gDh&^GtM?N&m{Kqpr2WUv z$C{5dy0G*AZZkSuqah@sL&Z{jxEAEhDAu3n3zFp4P+g)mv#78|(E1-K|4~z|B_gIr z%UX1>QbS6{fRVZ2bg_z(hz%!q*73i{Q77NrktT|`koqgBB3ZB60uMahzNd{GkJ6|aR~hp6Ux__onIzFFFfy8h8t zM4Nk`m~{P*`)wzpa*%W_n(W*G9V*(k$_TP^EyJ-08rgw#F805a+n*z-p;R)n@0xuy?-Gb@%?I^nKF*lCd0Z%xmHfZJDJj0%8^ zG7>hs7xBPKdFs+{WTcy{PK{C>NY68=|77KIo)uZ+%|NI#^shU>`h1Zy^9mLFp(cGH zz0Uj0QATcOLR7E1QMKWENyPgDPR_Zl0;y1Y{tT6Zs@DRzSM=7E>49snz>(2}Y8LOCCg#eGY&ixZ7400y~*X$bj$su$f z`j<$!b}Q^KIN(Jg5re`8MU4s@lv2@!<%CH8BOhkhFBV?WUj`I*!f@95LEntZqY#*i z2mUj5hY`xXO#8}OMR43crh2OWSR#8Wg;Otc$jP1m9?1VV#yRN!mahLc69nWNm`Vbw zKb53X4){8q!#lOLxO?Qfb2@m)9f#`Xd9S(EE-Y(J0D4$`I#2dgbMMnoW+adfft$xB zWK z8QVU;J~E=^(v+ynv6$v-WtY;iKCwIZjMmUlt||Zlad`lkFDC8v9VjP)FOz$v*0<LDiL)uV!}guf$L`CJ}|n)EXOK! ztJ+&EQZPiZYMm^nE&eilp!MML3N+Rv5mX?J7P2n=E1Sq|5H}oV%dfX78!LvOP&;<|J8)CmdEB`X8zFI z0X=$GSxO5nOxi7BoTeJ7lx*~dSJ?isF6AXe(*nb}VN61$ze3GfAer#cMxux+*i2ai z(qszFuYo0u_)R(DFXO}c7_;iAo5UCv5V^ij{DHa1rpTbGMLb>BXW$Ub*TIdk&m=;x zv_>cJ$iibUY3VrLZ-}+n@X$vC;*cj0)CJY@(cDG8I^me1Jq=*TB|$wHq-RV#fb zpv~>ky29|A>=1B!jubDF=Q%=doZrPRP6En7eBg#-092DaNr`-3M`; z7qME4?xK!vk$QdYDTEGoiHEBP>-B2zwt=56ve!xMorU8TqQY=oF;BXpMVib^P;Ev~ ztMH^O{fzDK-Orgs>j-Bf_}ka*wwYl}8=6Y<#NZ*~97SJ;!!FSif{-56tqc~qMm0`` z4`}Y?$XJ((SaPYzKu;yA@dy8!0`uYJrvSW3DC2ubN^|gUlaf;M*?i=j$g)mhP^YhxHp`<-9aM? zs#CF$H@fgNk%6ar9oPnJlH%Zt`wMY~%iX3`bKA{&PHghUS1;dF{X=`qnL1&%(ScOv zO>&*sA)VtU6nD%vS-{Y8^@5;IYRD96_cn|PQhOWX%Z&(-JTysj#Mk;5+d(+^S{BRq z3t$qcm?Li{31iIwM^qeD9av8YWQIxQ>c}5}S*MopFF{$!T^h&0TMt^N@Xq4c+$5eO zN8|NJ%Z<2+5ab4tsFtfbL91D*lmGQ{Iin1yIb-GdtNq}9#WDP% zBIDw&{&Ii3^{z>4%r~&hPkOkZc6eR`Fxu1zjM&)~Ua8^9|BEY{eCT8dUc!B?B%eoL z`^_zktBe~NHjQ>1h_oqb5NP+K*+oEy{<#eEBob?JHk-BuEZrROxH02U2n0k1s2OZ9 zqDz4CC7J4JWcXA4k5`>Q?CHa$l=yoy~Z>1LWTe0u{4~=D#q7Z^SP zKU)%di4NAdR0lMzXcP>omf9BxL`V2dO4Pn#J~{WqxP?7y-URP!6_%$wWrq!{cSi?0 zhTPa4)jA=rPM$WNq)m0ov$*NEY7vk;#hD;hAvFLn-%ebo}KzVojs$|O_?y#i}T|v@f|9QGu(s(STfm3Npr_l zxs`yXc7fBAqG&~EmMGF=5hW7|zRiVeo$#9P;;N{#Sl+JBhA%N^jA3nF73mIA8tLj# zx-*Q7NaP=2JRW5Boj!pdt`^=Gqr3qPOj`@{jx7>cIPvNDt8%*&l|q?*e}fZQ+61B~ zX?3b?ZNfchjtIKLSO2c0s3VQ#)cX2`l)}o6 zks(j4^=&w1SO$~AxZ$s+9M(+Vh;1T^P^8tG2Ra>a017*zW}4~L;9!B|gIzyJka3ns zZ^PiO_9(a~3XJA>_5BL1bK@~RhB)HjEWNHDC!l>2(4WF0b1EM;&Oe?^Y4Lo2 z+yGem7w_ZOTF7+f`LFi2dgFl`$~XxCsw|e`&l0f$=|>gT=22{f2`5bT6do!;?Grz< zk1g1b?c4uIb>8zsHcoQK!0Yfg^qhxPfy$<2WPl+(QOJoVH|#|9Wv-xn#qTSjkC>Mb zcGeBZ?Qoud)6i9ax6d#k>|Ua-v3>E6p)dW?2!4`x@cOOFQL%K+V&@c^$fw+lE?B?m zD^35lXdY3EJyzeAcab6)kc>n6CjvXiqUrq{C`0&)uw~hcFTcj>o(B(w9{Ww?{J0h{ z5ZjTGP&jrxix3IO)WX!$e@`ffkcwU;J&T8&EW}I+ zYLSsOCK;o+yY^~g$U~GfI#_Af6&d&SG)0*jyZ-qajZLwS)di_ncx<7*xsnet(&_w@ zdoC3vaxU%^{nPRE4cQ3I{C8!kYy0rDE8*UTtLDbFSozQZD$M7+)Qr4hV0>pGvQ$^s zcE^E;Y+F0=^pOX_COzDEP1^(Yq;{c;s-MF3-0&(`2(Q31OfcMo79uTdGqx>F%Xo9^ zh5h26vQzDZv?>HV%f!!d?)`9HI*v5%I1f~N$PjH**JLFO zq)Kb&2^#uNFLlp-~zQ99Hx1*N1E2;%wkja;iTvBva2W zjW$=R-!utKAOu@;?)ZKeQBwr4eEjx2Q$^?Nt%&l?S^g{n<-dHXRXxj4Y(CvL*1Cz;SOI>tJG|t=fp9zv#m;vcZ{sJf zt_Gno^Y_a^k%T8FY~~vsm5>TBUNY#L$Mz^zn1^5=?0vMbuWe3%%jOKrExoV}2R%cG zAf+c+9fR2oX*#s<=)JdQhXb^#lonR$HFK;$6Dw*v0nSi-LQLWFrb+mx* z>=yolR@}X@8pq-MISU3!rM-+-h-{(~zbBf@1x9#X08A_XD&$mZbrDZDSqpF9GX0d|8DcoklgW^)N1XeS@wQR5F{B5x(cA-=d&Q zeuFPNF|iYUk>_q%wkl%QuO9}gSeM^89Dc;7=`n=v!bT0nC+jL)yv`P05{Xm5Y^0lcz}I+WIWp(;7Fe+i)Zq{`*{+P&@yJ#1Vug#7vQ za9nMOzUV7kCk-UeTGn2s&oy{Su}SZG=UT!jynpXm%2+f0Ao5CCfmeoGefMTP>R0Bw z8^aD&6U^*&Ac1&vc@n9#;>5zhvcWjh_l^1SZvSL^A%Br&Wr69}=LR0}E6Zx-7E)%- z`_GT)Yl!4kx`*`A%e~u%?Y#QkzVxSF)@zZmp8m&KZZ)GhL= z{FOmue3S>~d^M_F9T+7vu%&`@10x)8c}5Rt1zTAyZmN~nJ}>fBYhoH0P-@GK-NUCC ziRUIA>WE+g`p@m#iD0*|)If<#5)2mbYR*TVreYO*RG!&{7NL(dP{pzidlZtL!5i8m zuo2$2uwS1z!nc3k=W%noZ9B=N*u~vc`(A3@Engc+lU~lbOC*0TiU6lfu%rRk#( zyTe7Fwym@XIy(ay0I9`E-IZ)y7&tI@?Fz1Wk#nsCFzGRDkc+C9#-qp^%UF_Cl!t)_ z0||uD@ou(zPpk^?l>LU=T#AtZ-XQ5M;m(%>FTN~a!fepGDsho)^#JP4_OUV@mRhtUofV6e%>S?&E$6s;js<|!sujOkTt+=x(OeghE= zNOr387dBw6;AYZT{;QcKi!$qbt>ABBeVpyvXpm5CSU)D%G;)`AN-Q^$J{v}5^^hd| zH`Ay#t0n{4p%9gAE6D?>bi)P( zqOULC9=5gIuyc#GKIjGN8K(|b&}1z!CoZVAn>|_*R>$zG^|j}V9XEUl0D^_KH&qJ@ zqn-(d4`uaMT!Sl{7()7n-^2}LOia53iL4?2EYfcC2q_`z=x|Zd1J9hG%pfgUvR5&> z=tf7SugB>k|Sev++yD%lTf3B-z00TMRgO|E5|eLwKai z4Py4W=~TG6=KEk(7MiNbVN=B-KW;))!_d%r+l?0+8{&3j9s z;6tx^V&BaG^U^sg+wrHH6q5Ltra;`o#Pu9S8il^4$}E zZfje;N?P&dysDgADr-F&obE$HZHcp`LQ=M(TSO3>@H0SMgoBXR0?c2T&QwCjRs=Za zL2+$C+PT*$x2&R*MXf6Rm;J~i%_>J@PcgAw@t9;TgS-9Z0M6Y%&6Q%=^XdxW&Khx| z$o@9a=z-6~P5W8-WdlHaY_>473>nEyZ8E|7WYNUMWW}GtD!O~JQR$6_i40T)B2P(< z;c%(iYhQijt`EMS3_uO|>1h^uMH33ry3kjZu>_~Plh^6~|+ zIkN8#<*4RnVe&J8AhBQMlriG3hoorzhJlFlFny-VcEj?FMV32Eb7U0dnCn>PTJ*) z^J1hCq4a)x+HS)^+qdSy+}9c#;0noQzoNQ0L5$yfS3EVI7UM}I_J;-0QC~0Uu+Ib$ zZs1|!Y+9oIY~s_na6_qH2vdifQJe>$vH*K>A!%&=#4ACG;QP^#beAT6C41_j`T=qCsy4sYx>G}1V?o@~`~-1? zfOD!zSK?92ABIDC)O8z1mN#l>25d;lo9mXh-YUaebCNwk{40GoQP!{(`d4Oa^MX!m zk-0y8F>a)&5OKfiZ)Z3v^wY=%lxiXLC-b7Qm*?|DK#L8Xs)NK@6KMFiZ5Jk+QC4MV&no!j{p#M(Z)lRvHh(D={~aL!{}i$P~N&7kwF5n7f9 zrgbgFBD5YS^*5%Y^V}5p5YL>KR?o```s9#i|LqUMc(4Rl19*MrY-Vgy*EXp~i+ZO6>!>TNuUYLOlr#uR8D*{<5AQd>_;jag!9u0)dv zag%L_=m)xC&hql`V8`}_4?Bs9UXgl*3QN@inIvbr-ATPkci{F$>g2Q&3lZ7B;cVm1?t#8+^^RHdMTa_|oMy<}^$espHAO!~&eDFP)Sm=sCu^0c zD~_pBls810)}5>M(^$Ts-phC1Pq+zSX~*#7F}fuVdVk#{UGEec@6RCF^la5jgu*GJ z(q}_pr`{Ncq(3l(#CcEk;29aHOO^8MV|R&66c&xLgaXqey5qq` zw{{hf4jqpq$fVFZ{Ia0YHdN`zwFkObkW=&4O_MMt0p}hQuM1ONBX@_CJToS9s}fQ$ zo*ZImIu!n=h;e>40*zv#LN=o%i7;q@*sl_6XtO(f7nT7(iR1W4K*XWB)vV?gEtn_F z$U|wZFf8~4Qnb@2gRYAdYB%=??r@C}@1V~!yMfo2@&WMGY)>Z#Lef)3v03xtde_P- zzJ0ND0Ivh`!-XYHN<;ZpiL|AaW-xAt(+C4`EbkL6FJwxbZJb?~TL@14rxYIhdtRS& z*S0`a>TbF-;HPd|4TmJ(Z*j6B7gIM&@tf8G$li@eG6&Ac?Km)cSvUVCS%V&e|iy{*pOhR z#^lX_r}>feCJebkVblv#?Y>#?$Y0qDEM!#jYaoM~P8HdRjH6NIL>%4qilonP)z=Jg zHimBIm+j1LTyq-!bWXRus<7z4Lb!h(-#`~DeC2lKNff%0^$TqYO?@Q<`hm17eSO4fGwX$4;-L))hObl z!E<*!Xu9|N(qIE0DH1(QUz2-$ux?!Hy@wsl*rTB5wEab>A!@?jl7>t ztyI)F_#RH>hp~&#D*o&F3l*-y#2nW5Vic4rwP7!XE&KZpJ`uSKH0B0s*nS~L+bbhD nRw(v}Qf*8?=XgmuJ?B74w|K9!|hv1Ji literal 0 HcmV?d00001