返回提交历史
Modified
g4f/gui/client/css/style.css
+1
-2
Modified
g4f/gui/client/html/index.html
+37
-5
Renamed
g4f/gui/client/js/chat.v1.js
+48
-32
Modified
g4f/gui/server/backend.py
+9
-0
Modified
g4f/models.py
+6
-5
XFEstudio/gpt4free
~
fix gui errors on iOS
04edb660
代码差异
5 个文件
+101
-44
@@ -627,13 +627,12 @@ ul {
627
627
}
628
628
}
629
629
630
@media screen and (max-height: 640px) {
630
@media screen and (max-height: 640px) and (min-width: 990px) {
631
631
body {
632
632
height: 87vh
633
633
}
634
634
}
635
635
636
637
636
.shown {
638
637
display: flex;
639
638
}
@@ -17,7 +17,7 @@
17
17
<link rel="manifest" href="/assets/img/site.webmanifest">
18
18
<script src="/assets/js/icons.js"></script>
19
19
<script src="/assets/js/highlightjs-copy.min.js"></script>
20
<script src="/assets/js/chat.v2.js" defer></script>
20
<script src="/assets/js/chat.v1.js" defer></script>
21
21
<script src="https://cdn.jsdelivr.net/npm/markdown-it@13.0.1/dist/markdown-it.min.js"></script>
22
22
<link rel="stylesheet"
23
23
href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/base16/dracula.min.css">
@@ -80,13 +80,12 @@
80
80
</button>
81
81
<div class="info">
82
82
<i class="fa-brands fa-telegram"></i>
83
<span class="convo-title">telegram: <a href="https://t.me/g4f_official">@g4f_official</a><br>
83
<span class="convo-title">tele ~ <a href="https://t.me/g4f_official">@g4f_official</a>
84
84
</span>
85
85
</div>
86
86
<div class="info">
87
87
<i class="fa-brands fa-github"></i>
88
<span class="convo-title">github: <a href="https://github.com/xtekky/gpt4free">@gpt4free</a><br>
89
leave a star ; )
88
<span class="convo-title">github ~ <a href="https://github.com/xtekky/gpt4free">@gpt4free</a>
90
89
</span>
91
90
</div>
92
91
</div>
@@ -117,7 +116,40 @@
117
116
</div>
118
117
<div class="field">
119
118
<select name="model" id="model">
120
<option value="gpt-3.5-turbo" selected>gpt-3.5-turbo</option>
119
<option value="gpt-3.5-turbo" selected="">gpt-3.5-turbo</option>
120
<option value="gpt-3.5-turbo-0613">gpt-3.5-turbo-0613</option>
121
<option value="gpt-3.5-turbo-16k">gpt-3.5-turbo-16k</option>
122
<option value="gpt-3.5-turbo-16k-0613">gpt-3.5-turbo-16k-0613</option>
123
<option value="gpt-4">gpt-4</option>
124
<option value="gpt-4-0613">gpt-4-0613</option>
125
<option value="gpt-4-32k">gpt-4-32k</option>
126
<option value="gpt-4-32k-0613">gpt-4-32k-0613</option>
127
<option value="palm2">palm2</option>
128
<option value="palm">palm</option>
129
<option value="google">google</option>
130
<option value="google-bard">google-bard</option>
131
<option value="google-palm">google-palm</option>
132
<option value="bard">bard</option>
133
<option value="falcon-40b">falcon-40b</option>
134
<option value="falcon-7b">falcon-7b</option>
135
<option value="llama-13b">llama-13b</option>
136
<option value="command-nightly">command-nightly</option>
137
<option value="gpt-neox-20b">gpt-neox-20b</option>
138
<option value="santacoder">santacoder</option>
139
<option value="bloom">bloom</option>
140
<option value="flan-t5-xxl">flan-t5-xxl</option>
141
<option value="code-davinci-002">code-davinci-002</option>
142
<option value="text-ada-001">text-ada-001</option>
143
<option value="text-babbage-001">text-babbage-001</option>
144
<option value="text-curie-001">text-curie-001</option>
145
<option value="text-davinci-002">text-davinci-002</option>
146
<option value="text-davinci-003">text-davinci-003</option>
147
<option value="llama70b-v2-chat">llama70b-v2-chat</option>
148
<option value="llama13b-v2-chat">llama13b-v2-chat</option>
149
<option value="llama7b-v2-chat">llama7b-v2-chat</option>
150
<option value="oasst-sft-1-pythia-12b">oasst-sft-1-pythia-12b</option>
151
<option value="oasst-sft-4-pythia-12b-epoch-3.5">oasst-sft-4-pythia-12b-epoch-3.5</option>
152
<option value="command-light-nightly">command-light-nightly</option>
121
153
</select>
122
154
</div>
123
155
<div class="field">
@@ -505,28 +505,6 @@ colorThemes.forEach((themeOption) => {
505
505
});
506
506
507
507
508
(() => {
509
let check = false;
510
(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
511
512
if (check) {
513
container = document.querySelector(".row")
514
container.removeChild(container.querySelector('.ads'))
515
}
516
})();
517
518
setTimeout(() => {
519
ads_div = document.querySelector('.ads')
520
521
if (ads_div != null && ads_div.getElementsByTagName("iframe").length == 0) {
522
ads_div.removeChild(ads_div.querySelector('.sorry'))
523
524
ads_div.innerHTML += `
525
Please disable your adblocker to support us. <br><br>Maintaining this website costs us a lot of time and money.
526
`
527
}
528
}, 3000);
529
530
508
window.onload = async () => {
531
509
load_settings_localstorage();
532
510
setTheme();
@@ -550,7 +528,7 @@ window.onload = async () => {
550
528
}
551
529
}
552
530
553
await load_models();
531
// await load_models();
554
532
await say_hello()
555
533
556
534
message_input.addEventListener(`keydown`, async (evt) => {
@@ -597,18 +575,56 @@ observer.observe(message_input, { attributes: true });
597
575
598
576
599
577
const load_models = async () => {
600
models = localStorage.getItem('_models')
578
// models = localStorage.getItem('_models')
601
579
602
if (models === null) {
603
response = await fetch('/backend-api/v2/models')
604
models = await response.json()
605
localStorage.setItem('_models', JSON.stringify(models))
580
// if (models === null) {
581
// response = await fetch('/backend-api/v2/models')
582
// models = await response.json()
583
// localStorage.setItem('_models', JSON.stringify(models))
584
585
// } else {
586
// models = JSON.parse(models)
587
// }
588
589
models = [
590
"gpt-3.5-turbo",
591
"gpt-3.5-turbo-0613",
592
"gpt-3.5-turbo-16k",
593
"gpt-3.5-turbo-16k-0613",
594
"gpt-4",
595
"gpt-4-0613",
596
"gpt-4-32k",
597
"gpt-4-32k-0613",
598
"palm2",
599
"palm",
600
"google",
601
"google-bard",
602
"google-palm",
603
"bard",
604
"falcon-40b",
605
"falcon-7b",
606
"llama-13b",
607
"command-nightly",
608
"gpt-neox-20b",
609
"santacoder",
610
"bloom",
611
"flan-t5-xxl",
612
"code-davinci-002",
613
"text-ada-001",
614
"text-babbage-001",
615
"text-curie-001",
616
"text-davinci-002",
617
"text-davinci-003",
618
"llama70b-v2-chat",
619
"llama13b-v2-chat",
620
"llama7b-v2-chat",
621
"oasst-sft-1-pythia-12b",
622
"oasst-sft-4-pythia-12b-epoch-3.5",
623
"command-light-nightly"
624
]
606
625
607
} else {
608
models = JSON.parse(models)
609
}
610
611
626
let MODELS_SELECT = document.getElementById('model');
627
612
628
613
629
for (model of models) {
614
630
let model_info = document.createElement('option');
@@ -23,8 +23,17 @@ class Backend_Api:
23
23
'function': self._gen_title,
24
24
'methods': ['POST']
25
25
},
26
'/backend-api/v2/error': {
27
'function': self.error,
28
'methods': ['POST']
29
}
26
30
}
27
31
32
def error(self):
33
print(request.json)
34
35
return 'ok', 200
36
28
37
def models(self):
29
38
models = g4f._all_models
30
39
@@ -3,7 +3,6 @@ from dataclasses import dataclass
3
3
from .typing import Union
4
4
from .Provider import BaseProvider, RetryProvider
5
5
from .Provider import (
6
AItianhuSpace,
7
6
ChatgptLogin,
8
7
ChatgptDemo,
9
8
ChatgptDuo,
@@ -11,7 +10,6 @@ from .Provider import (
11
10
Opchatgpts,
12
11
ChatgptAi,
13
12
GptChatly,
14
AItianhu,
15
13
Liaobots,
16
14
Yqcloud,
17
15
GeekGpt,
@@ -30,6 +28,9 @@ from .Provider import (
30
28
Bing,
31
29
You,
32
30
H2o,
31
32
ChatForAi,
33
ChatBase
33
34
)
34
35
35
36
@dataclass(unsafe_hash=True)
@@ -60,7 +61,7 @@ gpt_35_long = Model(
60
61
best_provider = RetryProvider([
61
62
AiAsk, Aichat, ChatgptDemo, FreeGpt, Liaobots, You,
62
63
GPTalk, ChatgptLogin, GptChatly, GptForLove, Opchatgpts,
63
NoowAi, GeekGpt
64
NoowAi, GeekGpt, Phind
64
65
])
65
66
)
66
67
@@ -69,8 +70,8 @@ gpt_35_turbo = Model(
69
70
name = 'gpt-3.5-turbo',
70
71
base_provider = 'openai',
71
72
best_provider = RetryProvider([
72
GeekGpt, ChatgptLogin, ChatgptAi, GptGo,
73
AItianhu, Aichat, AItianhuSpace, Myshell, Aibn, FreeGpt, Ylokh
73
Aichat, ChatgptDemo, AiAsk, ChatForAi, GPTalk,
74
GptGo, You, Vercel, GptForLove, ChatBase, Bing
74
75
])
75
76
)
76
77