Skip to content

Commit 148d0bd

Browse files
authored
Merge pull request #79 from luizslvr/fix-async-and-new-models
Fix AttributeError in perplexity_async and update supported models (gpt 5.2 and grok 4.1)
2 parents e1f0c40 + 8f67bb3 commit 148d0bd

File tree

15 files changed

+50
-65
lines changed

15 files changed

+50
-65
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ client = perplexity.Client(cookies)
7575
response = client.search(
7676
"Complex query here",
7777
mode='pro',
78-
model='gpt-4.5',
78+
model='gpt-5.2',
7979
sources=['scholar']
8080
)
8181
```
@@ -145,8 +145,8 @@ perplexity_cli = perplexity.Client()
145145

146146
# model = model for mode, which can only be used in own accounts, that is {
147147
# 'auto': [None],
148-
# 'pro': [None, 'sonar', 'gpt-5.1', 'claude-4.5-sonnet', 'gemini-2.5-pro', 'grok-4'],
149-
# 'reasoning': [None, 'gpt-5.1-thingking', 'claude-4.5-sonnet-thinking', 'gemini-3.0-pro', 'kimi-k2-thinking'],
148+
# 'pro': [None, 'sonar', 'gpt-5.2', 'claude-4.5-sonnet', 'grok-4-1'],
149+
# 'reasoning': [None, 'gpt-5.2-thinking', 'claude-4.5-sonnet-thinking', 'gemini-3.0-pro', 'kimi-k2-thinking', 'grok-4.1-reasoning'],
150150
# 'deep research': [None]
151151
# }
152152
# sources = ['web', 'scholar', 'social']
@@ -174,7 +174,7 @@ perplexity_cookies = {
174174

175175
perplexity_cli = perplexity.Client(perplexity_cookies)
176176

177-
resp = perplexity_cli.search('Your query here', mode='reasoning', model='o3', sources=['web'], files={'myfile.txt': open('file.txt').read()}, stream=False, language='en-US', follow_up=None, incognito=False)
177+
resp = perplexity_cli.search('Your query here', mode='reasoning', model='gpt-5.2-thinking', sources=['web'], files={'myfile.txt': open('file.txt').read()}, stream=False, language='en-US', follow_up=None, incognito=False)
178178
print(resp)
179179
```
180180

@@ -208,8 +208,8 @@ async def test():
208208
# mode = ['auto', 'pro', 'reasoning', 'deep research']
209209
# model = model for mode, which can only be used in own accounts, that is {
210210
# 'auto': [None],
211-
# 'pro': [None, 'sonar', 'gpt-5.1', 'claude-4.5-sonnet', 'gemini-2.5-pro', 'grok-4'],
212-
# 'reasoning': [None, 'gpt-5.1-thingking', 'claude-4.5-sonnet-thinking', 'gemini-3.0-pro', 'kimi-k2-thinking'],
211+
# 'pro': [None, 'sonar', 'gpt-5.2', 'claude-4.5-sonnet', 'grok-4-1'],
212+
# 'reasoning': [None, 'gpt-5.2-thinking', 'claude-4.5-sonnet-thinking', 'gemini-3.0-pro', 'kimi-k2-thinking', 'grok-4.1-reasoning'],
213213
# 'deep research': [None]
214214
# }
215215
# sources = ['web', 'scholar', 'social']
@@ -241,7 +241,7 @@ perplexity_cookies = {
241241
async def test():
242242
perplexity_cli = await perplexity_async.Client(perplexity_cookies)
243243

244-
resp = await perplexity_cli.search('Your query here', mode='reasoning', model='o3', sources=['web'], files={'myfile.txt': open('file.txt').read()}, stream=False, language='en-US', follow_up=None, incognito=False)
244+
resp = await perplexity_cli.search('Your query here', mode='reasoning', model='gpt-5.2-thinking', sources=['web'], files={'myfile.txt': open('file.txt').read()}, stream=False, language='en-US', follow_up=None, incognito=False)
245245
print(resp)
246246

247247
asyncio.run(test())
@@ -346,8 +346,8 @@ class Client:
346346
```python
347347
{
348348
'auto': [None],
349-
'pro': [None, 'sonar', 'gpt-5.1', 'claude-4.5-sonnet', 'gemini-2.5-pro', 'grok-4'],
350-
'reasoning': [None, 'gpt-5.1-thinking', 'claude-4.5-sonnet-thinking', 'gemini-3.0-pro', 'kimi-k2-thinking'],
349+
'pro': [None, 'sonar', 'gpt-5.2', 'claude-4.5-sonnet', 'grok-4-1'],
350+
'reasoning': [None, 'gpt-5.2-thinking', 'claude-4.5-sonnet-thinking', 'gemini-3.0-pro', 'kimi-k2-thinking', 'grok-4.1-reasoning'],
351351
'deep research': [None]
352352
}
353353
```

client.py

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -121,28 +121,18 @@ def search(
121121
"pro": [
122122
None,
123123
"sonar",
124-
"gpt-4.5",
125-
"gpt-4o",
126-
"claude 3.7 sonnet",
127-
"gemini 2.0 flash",
128-
"grok-2",
129-
],
130-
"reasoning": [
131-
None,
132-
"r1",
133-
"o3-mini",
134-
"claude 3.7 sonnet",
135-
"gpt5",
136-
"gpt5_thinking",
137-
"claude37sonnetthinking",
124+
"gpt-5.2",
125+
"claude-4.5-sonnet",
126+
"grok-4.1",
138127
],
128+
"reasoning": [None, "gpt-5.2-thinking", "claude-4.5-sonnet-thinking", "gemini-3.0-pro", "kimi-k2-thinking", "grok-4.1-reasoning"],
139129
"deep research": [None],
140130
}[mode]
141131
if self.own
142132
else True
143133
), """Models for modes -> {'auto': [None],
144-
'pro': [None, 'sonar', 'gpt-4.5', 'gpt-4o', 'claude 3.7 sonnet', 'gemini 2.0 flash', 'grok-2'],
145-
'reasoning': [None, 'r1', 'o3-mini', 'claude 3.7 sonnet', 'gpt5', 'gpt5_thinking', 'claude37sonnetthinking'],
134+
'pro': [None, 'sonar', 'gpt-5.2', 'claude-4.5-sonnet', 'grok-4.1'],
135+
'reasoning': [None, 'gpt-5.2-thinking', 'claude-4.5-sonnet-thinking', 'gemini-3.0-pro", 'kimi-k2-thinking', 'grok-4.1-reasoning'],
146136
'deep research': [None]
147137
}"""
148138
assert all(
@@ -215,19 +205,17 @@ def search(
215205
"pro": {
216206
None: "pplx_pro",
217207
"sonar": "experimental",
218-
"gpt-4.5": "gpt45",
219-
"gpt-4o": "gpt4o",
220-
"claude 3.7 sonnet": "claude2",
221-
"gemini 2.0 flash": "gemini2flash",
222-
"grok-2": "grok",
208+
"gpt-5.2": "gpt52",
209+
"claude-4.5-sonnet": "claude45sonnet",
210+
"grok-4.1": "grok41nonreasoning",
223211
},
224212
"reasoning": {
225213
None: "pplx_reasoning",
226-
"r1": "r1",
227-
"o3-mini": "o3mini",
228-
"claude 3.7 sonnet": "claude37sonnetthinking",
229-
"gpt5": "gpt5",
230-
"gpt5_thinking": "gpt5thinking",
214+
"gpt-5.2-thinking": "gpt52_thinking",
215+
"claude-4.5-sonnet-thinking": "claude45sonnetthinking",
216+
"gemini-3.0-pro": "gemini30pro",
217+
"kimi-k2-thinking": "kimik2thinking",
218+
"grok-4.1-reasoning": "grok41reasoning",
231219
},
232220
"deep research": {None: "pplx_alpha"},
233221
}[mode][model],
365 Bytes
Binary file not shown.
11.1 KB
Binary file not shown.
4.21 KB
Binary file not shown.
4.46 KB
Binary file not shown.
6.6 KB
Binary file not shown.

perplexity/client.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,11 @@ def search(
144144
"pro": [
145145
None,
146146
"sonar",
147-
"gpt-4.5",
148-
"gpt-4o",
149-
"claude 3.7 sonnet",
150-
"gemini 2.0 flash",
151-
"grok-2",
147+
"gpt-5.2",
148+
"claude-4.5-sonnet",
149+
"grok-4.1",
152150
],
153-
"reasoning": [None, "r1", "o3-mini", "claude 3.7 sonnet"],
151+
"reasoning": [None, "gpt-5.2-thinking", "claude-4.5-sonnet-thinking", "gemini-3.0-pro", "kimi-k2-thinking", "grok-4.1-reasoning"],
154152
"deep research": [None],
155153
}[mode]
156154
if self.own
@@ -234,17 +232,17 @@ def search(
234232
"pro": {
235233
None: "pplx_pro",
236234
"sonar": "experimental",
237-
"gpt-4.5": "gpt45",
238-
"gpt-4o": "gpt4o",
239-
"claude 3.7 sonnet": "claude2",
240-
"gemini 2.0 flash": "gemini2flash",
241-
"grok-2": "grok",
235+
"gpt-5.2": "gpt52",
236+
"claude-4.5-sonnet": "claude45sonnet",
237+
"grok-4.1": "grok41nonreasoning",
242238
},
243239
"reasoning": {
244240
None: "pplx_reasoning",
245-
"r1": "r1",
246-
"o3-mini": "o3mini",
247-
"claude 3.7 sonnet": "claude37sonnetthinking",
241+
"gpt-5.2-thinking": "gpt52_thinking",
242+
"claude-4.5-sonnet-thinking": "claude45sonnetthinking",
243+
"gemini-3.0-pro": "gemini30pro",
244+
"kimi-k2-thinking": "kimik2thinking",
245+
"grok-4.1-reasoning": "grok41reasoning",
248246
},
249247
"deep research": {None: "pplx_alpha"},
250248
}[mode][model],

perplexity_api.egg-info/SOURCES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ perplexity_api.egg-info/SOURCES.txt
1515
perplexity_api.egg-info/dependency_links.txt
1616
perplexity_api.egg-info/requires.txt
1717
perplexity_api.egg-info/top_level.txt
18+
perplexity_async/__init__.py
1819
perplexity_async/client.py
1920
perplexity_async/emailnator.py
2021
perplexity_async/labs.py

perplexity_async/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from .client import Client
2+
from .emailnator import Emailnator
3+
from .labs import LabsClient
4+
5+
__all__ = ["Client", "Emailnator", "LabsClient"]

0 commit comments

Comments
 (0)