diff options
author | Raju Komati <komatiraju032@gmail.com> | 2023-04-24 20:36:24 +0200 |
---|---|---|
committer | Raju Komati <komatiraju032@gmail.com> | 2023-04-24 20:36:24 +0200 |
commit | 98afd5b9854c242dd05808951935ef61ffc36e98 (patch) | |
tree | ca4d9b08f9aca88a4daf2fc0571699359c55824c /phind | |
parent | added validation for model parameter (diff) | |
parent | userid and session_token (diff) | |
download | gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.gz gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.bz2 gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.lz gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.xz gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.zst gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.zip |
Diffstat (limited to 'phind')
-rw-r--r-- | phind/README.md | 1 | ||||
-rw-r--r-- | phind/__init__.py | 20 | ||||
-rw-r--r-- | phind/phind_test.py | 32 |
3 files changed, 47 insertions, 6 deletions
diff --git a/phind/README.md b/phind/README.md index c9b85dbb..f17f487f 100644 --- a/phind/README.md +++ b/phind/README.md @@ -5,6 +5,7 @@ import phind # set cf_clearance cookie phind.cf_clearance = 'xx.xx-1682166681-0-160' +phind.user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36' # same as the one from browser you got cf_clearance from prompt = 'who won the quatar world cup' diff --git a/phind/__init__.py b/phind/__init__.py index 8bae9f17..629befa5 100644 --- a/phind/__init__.py +++ b/phind/__init__.py @@ -8,6 +8,7 @@ from re import findall from curl_cffi.requests import post cf_clearance = '' +user_agent = '' class PhindResponse: @@ -52,6 +53,9 @@ class PhindResponse: class Search: def create(prompt: str, actualSearch: bool = True, language: str = 'en') -> dict: # None = no search + if user_agent == '': + raise ValueError('user_agent must be set, refer to documentation') + if not actualSearch: return { '_type': 'SearchResponse', @@ -83,7 +87,7 @@ class Search: 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', - 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', + 'user-agent': user_agent } return post('https://www.phind.com/api/bing/search', headers = headers, json = { @@ -102,6 +106,9 @@ class Completion: codeContext: str = '', language: str = 'en') -> PhindResponse: + if user_agent == '': + raise ValueError('user_agent must be set, refer to documentation') + if results is None: results = Search.create(prompt, actualSearch = True) @@ -141,7 +148,7 @@ class Completion: 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', - 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', + 'user-agent': user_agent } completion = '' @@ -192,9 +199,7 @@ class StreamingCompletion: 'creative': creative } } - - print(cf_clearance) - + headers = { 'authority': 'www.phind.com', 'accept': '*/*', @@ -209,7 +214,7 @@ class StreamingCompletion: 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', - 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', + 'user-agent': user_agent } response = post('https://www.phind.com/api/infer/answer', @@ -228,6 +233,9 @@ class StreamingCompletion: codeContext : str = '', language : str = 'en'): + if user_agent == '': + raise ValueError('user_agent must be set, refer to documentation') + if results is None: results = Search.create(prompt, actualSearch = True) diff --git a/phind/phind_test.py b/phind/phind_test.py new file mode 100644 index 00000000..94354fd8 --- /dev/null +++ b/phind/phind_test.py @@ -0,0 +1,32 @@ +import phind + +# set cf_clearance cookie +phind.cf_clearance = 'heguhSRBB9d0sjLvGbQECS8b80m2BQ31xEmk9ChshKI-1682268995-0-160' +phind.user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36' + +prompt = 'hello world' + +# normal completion +result = phind.Completion.create( + model = 'gpt-4', + prompt = prompt, + results = phind.Search.create(prompt, actualSearch = False), # create search (set actualSearch to False to disable internet) + creative = False, + detailed = False, + codeContext = '') # up to 3000 chars of code + +print(result.completion.choices[0].text) + +prompt = 'who won the quatar world cup' + +# help needed: not getting newlines from the stream, please submit a PR if you know how to fix this +# stream completion +for result in phind.StreamingCompletion.create( + model = 'gpt-3.5', + prompt = prompt, + results = phind.Search.create(prompt, actualSearch = True), # create search (set actualSearch to False to disable internet) + creative = False, + detailed = False, + codeContext = ''): # up to 3000 chars of code + + print(result.completion.choices[0].text, end='', flush=True)
\ No newline at end of file |