返回提交历史
Modified
g4f/Provider/needs_auth/Bard.py
+7
-12
XFEstudio/gpt4free
Update Bard.py
29df5a21
代码差异
1 个文件
+7
-12
@@ -1,15 +1,10 @@
1
1
from __future__ import annotations
2
2
3
3
import time
4
try:
5
from selenium.webdriver.remote.webdriver import WebDriver
6
except ImportError:
7
class WebDriver():
8
pass
9
4
10
5
from ...typing import CreateResult, Messages
11
6
from ..base_provider import BaseProvider
12
from ..helper import format_prompt, get_browser
7
from ..helper import WebDriver, format_prompt, get_browser
13
8
14
9
class Bard(BaseProvider):
15
10
url = "https://bard.google.com"
@@ -24,14 +19,14 @@ class Bard(BaseProvider):
24
19
stream: bool,
25
20
proxy: str = None,
26
21
browser: WebDriver = None,
27
display: bool = True,
22
hidden_display: bool = True,
28
23
**kwargs
29
24
) -> CreateResult:
30
25
prompt = format_prompt(messages)
31
26
if browser:
32
27
driver = browser
33
28
else:
34
if display:
29
if hidden_display:
35
30
driver, display = get_browser(None, True, proxy)
36
31
else:
37
32
driver = get_browser(None, False, proxy)
@@ -49,7 +44,7 @@ class Bard(BaseProvider):
49
44
if not browser:
50
45
driver.quit()
51
46
# New browser should be visible
52
if display:
47
if hidden_display:
53
48
display.stop()
54
49
driver = get_browser(None, False, proxy)
55
50
driver.get(f"{cls.url}/chat")
@@ -74,11 +69,11 @@ XMLHttpRequest.prototype.open = function(method, url) {
74
69
"""
75
70
driver.execute_script(script)
76
71
77
# Send prompt
72
# Input and submit prompt
78
73
driver.find_element(By.CSS_SELECTOR, "div.ql-editor.ql-blank.textarea").send_keys(prompt)
79
74
driver.find_element(By.CSS_SELECTOR, "button.send-button").click()
80
75
81
# Read response
76
# Yield response
82
77
script = "return window._message;"
83
78
while True:
84
79
chunk = driver.execute_script(script)
@@ -92,5 +87,5 @@ XMLHttpRequest.prototype.open = function(method, url) {
92
87
if not browser:
93
88
time.sleep(0.1)
94
89
driver.quit()
95
if display:
90
if hidden_display:
96
91
display.stop()