返回提交历史
Deleted
sqlchat/README.md
+0
-42
Deleted
sqlchat/__init__.py
+0
-117
Modified
t3nsor/README.md
+2
-0
Modified
unfinished/gptbz/__init__.py
+2
-3
Deleted
unfinished/ora_test.py
+0
-29
Added
unfinished/test.py
+12
-0
XFEstudio/gpt4free
testing
cfce83bb
代码差异
6 个文件
+16
-191
@@ -1,42 +0,0 @@
1
### Example: `sqlchat` (use like openai pypi package) <a name="example-sqlchat"></a>
2
3
```python
4
# Import sqlchat
5
import sqlchat
6
7
# sqlchat.Completion.create
8
# sqlchat.StreamCompletion.create
9
10
[...]
11
12
```
13
14
#### Example Chatbot
15
```python
16
messages = []
17
18
while True:
19
user = input('you: ')
20
21
sqlchat_cmpl = sqlchat.Completion.create(
22
prompt = user,
23
messages = messages
24
)
25
26
print('gpt:', sqlchat_cmpl.completion.choices[0].text)
27
28
messages.extend([
29
{'role': 'user', 'content': user },
30
{'role': 'assistant', 'content': sqlchat_cmpl.completion.choices[0].text}
31
])
32
```
33
34
#### Streaming Response:
35
36
```python
37
for response in sqlchat.StreamCompletion.create(
38
prompt = 'write python code to reverse a string',
39
messages = []):
40
41
print(response.completion.choices[0].text)
42
```
@@ -1,117 +0,0 @@
1
from requests import post
2
from time import time
3
4
headers = {
5
'authority' : 'www.sqlchat.ai',
6
'accept' : '*/*',
7
'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,es-ES;q=0.7,es;q=0.6,en-US;q=0.5,am;q=0.4,de;q=0.3',
8
'content-type' : 'text/plain;charset=UTF-8',
9
'origin' : 'https://www.sqlchat.ai',
10
'referer' : 'https://www.sqlchat.ai/',
11
'sec-fetch-dest' : 'empty',
12
'sec-fetch-mode' : 'cors',
13
'sec-fetch-site' : 'same-origin',
14
'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',
15
}
16
17
class SqlchatResponse:
18
class Completion:
19
class Choices:
20
def __init__(self, choice: dict) -> None:
21
self.text = choice['text']
22
self.content = self.text.encode()
23
self.index = choice['index']
24
self.logprobs = choice['logprobs']
25
self.finish_reason = choice['finish_reason']
26
27
def __repr__(self) -> str:
28
return f'''<__main__.APIResponse.Completion.Choices(\n text = {self.text.encode()},\n index = {self.index},\n logprobs = {self.logprobs},\n finish_reason = {self.finish_reason})object at 0x1337>'''
29
30
def __init__(self, choices: dict) -> None:
31
self.choices = [self.Choices(choice) for choice in choices]
32
33
class Usage:
34
def __init__(self, usage_dict: dict) -> None:
35
self.prompt_tokens = usage_dict['prompt_chars']
36
self.completion_tokens = usage_dict['completion_chars']
37
self.total_tokens = usage_dict['total_chars']
38
39
def __repr__(self):
40
return f'''<__main__.APIResponse.Usage(\n prompt_tokens = {self.prompt_tokens},\n completion_tokens = {self.completion_tokens},\n total_tokens = {self.total_tokens})object at 0x1337>'''
41
42
def __init__(self, response_dict: dict) -> None:
43
44
self.response_dict = response_dict
45
self.id = response_dict['id']
46
self.object = response_dict['object']
47
self.created = response_dict['created']
48
self.model = response_dict['model']
49
self.completion = self.Completion(response_dict['choices'])
50
self.usage = self.Usage(response_dict['usage'])
51
52
def json(self) -> dict:
53
return self.response_dict
54
55
class Completion:
56
def create(
57
prompt: str = 'hello world',
58
messages: list = []) -> SqlchatResponse:
59
60
response = post('https://www.sqlchat.ai/api/chat', headers=headers, stream=True,
61
json = {
62
'messages': messages,
63
'openAIApiConfig':{'key':'','endpoint':''}})
64
65
return SqlchatResponse({
66
'id' : f'cmpl-1337-{int(time())}',
67
'object' : 'text_completion',
68
'created': int(time()),
69
'model' : 'gpt-3.5-turbo',
70
'choices': [{
71
'text' : response.text,
72
'index' : 0,
73
'logprobs' : None,
74
'finish_reason' : 'stop'
75
}],
76
'usage': {
77
'prompt_chars' : len(prompt),
78
'completion_chars' : len(response.text),
79
'total_chars' : len(prompt) + len(response.text)
80
}
81
})
82
83
class StreamCompletion:
84
def create(
85
prompt : str = 'hello world',
86
messages: list = []) -> SqlchatResponse:
87
88
messages.append({
89
'role':'user',
90
'content':prompt
91
})
92
93
response = post('https://www.sqlchat.ai/api/chat', headers=headers, stream=True,
94
json = {
95
'messages': messages,
96
'openAIApiConfig':{'key':'','endpoint':''}})
97
98
for chunk in response.iter_content(chunk_size = 2046):
99
yield SqlchatResponse({
100
'id' : f'cmpl-1337-{int(time())}',
101
'object' : 'text_completion',
102
'created': int(time()),
103
'model' : 'gpt-3.5-turbo',
104
105
'choices': [{
106
'text' : chunk.decode(),
107
'index' : 0,
108
'logprobs' : None,
109
'finish_reason' : 'stop'
110
}],
111
112
'usage': {
113
'prompt_chars' : len(prompt),
114
'completion_chars' : len(chunk.decode()),
115
'total_chars' : len(prompt) + len(chunk.decode())
116
}
117
})
@@ -1,3 +1,5 @@
1
### note: currently patched
2
1
3
### Example: `t3nsor` (use like openai pypi package) <a name="example-t3nsor"></a>
2
4
3
5
```python
@@ -1,6 +1,4 @@
1
import asyncio
2
1
import websockets
3
4
2
from json import dumps, loads
5
3
6
4
async def test():
@@ -20,6 +18,8 @@ async def test():
20
18
try:
21
19
response = await wss.recv()
22
20
json_response = loads(response)
21
print(json_response)
22
23
23
ended = json_response.get('eof')
24
24
25
25
if not ended:
@@ -28,4 +28,3 @@ async def test():
28
28
except websockets.ConnectionClosed:
29
29
break
30
30
31
asyncio.run(test())
@@ -1,29 +0,0 @@
1
# inport ora
2
import ora
3
4
# create model
5
model = ora.CompletionModel.create(
6
system_prompt = 'You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible',
7
description = 'ChatGPT Openai Language Model',
8
name = 'gpt-3.5')
9
10
print(model.id)
11
12
# init conversation (will give you a conversationId)
13
init = ora.Completion.create(
14
model = model,
15
prompt = 'hello world')
16
17
print(init.completion.choices[0].text)
18
19
while True:
20
# pass in conversationId to continue conversation
21
22
prompt = input('>>> ')
23
response = ora.Completion.create(
24
model = model,
25
prompt = prompt,
26
includeHistory = True,
27
conversationId = init.id)
28
29
print(response.completion.choices[0].text)
@@ -0,0 +1,12 @@
1
import gptbz
2
import asyncio
3
4
5
# asyncio.run(gptbz.test())
6
7
import requests
8
9
image = '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'
10
11
response = requests.get('https://ocr.holey.cc/ncku?base64_str=%s' % image) #.split('base64,')[1])
12
print(response.content)