XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
返回提交历史

XFEstudio/gpt4free

Update PerplexityAi.py

0625bd0a
H Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

1 个文件 +9 -10
Modified g4f/Provider/PerplexityAi.py +9 -10
@@ -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 PerplexityAi(BaseProvider):
15 10 url = "https://www.perplexity.ai"
@@ -27,13 +22,13 @@ class PerplexityAi(BaseProvider):
27 22 timeout: int = 120,
28 23 browser: WebDriver = None,
29 24 copilot: bool = False,
30 display: bool = True,
25 hidden_display: bool = True,
31 26 **kwargs
32 27 ) -> CreateResult:
33 28 if browser:
34 29 driver = browser
35 30 else:
36 if display:
31 if hidden_display:
37 32 driver, display = get_browser("", True, proxy)
38 33 else:
39 34 driver = get_browser("", False, proxy)
@@ -50,6 +45,7 @@ class PerplexityAi(BaseProvider):
50 45 # Page loaded?
51 46 wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "textarea[placeholder='Ask anything...']")))
52 47
48 # Add WebSocket hook
53 49 script = """
54 50 window._message = window._last_message = "";
55 51 window._message_finished = false;
@@ -80,10 +76,12 @@ WebSocket.prototype.send = function(...args) {
80 76
81 77 if copilot:
82 78 try:
79 # Check account
83 80 driver.find_element(By.CSS_SELECTOR, "img[alt='User avatar']")
81 # Enable copilot
84 82 driver.find_element(By.CSS_SELECTOR, "button[data-testid='copilot-toggle']").click()
85 83 except:
86 pass
84 raise RuntimeError("For copilot you needs a account")
87 85
88 86 # Enter question
89 87 driver.find_element(By.CSS_SELECTOR, "textarea[placeholder='Ask anything...']").send_keys(prompt)
@@ -91,6 +89,7 @@ WebSocket.prototype.send = function(...args) {
91 89 driver.find_element(By.CSS_SELECTOR, "button.bg-super svg[data-icon='arrow-right']").click()
92 90
93 91 try:
92 # Yield response
94 93 script = """
95 94 if(window._message && window._message != window._last_message) {
96 95 try {
@@ -117,5 +116,5 @@ if(window._message && window._message != window._last_message) {
117 116 if not browser:
118 117 time.sleep(0.1)
119 118 driver.quit()
120 if display:
119 if hidden_display:
121 120 display.stop()