Skip to content

Commit df7d9b9

Browse files
authored
Merge pull request #25 from ZeekoZhu/patch-1
add more models
2 parents 39fc67d + 0bfa563 commit df7d9b9

File tree

3 files changed

+45
-15
lines changed

3 files changed

+45
-15
lines changed

Pipfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ name = "pypi"
66
[packages]
77
django = "==4.1.7"
88
gunicorn = "==20.1.0"
9-
openai = "~=0.27.2"
9+
openai = "~=0.27.8"
1010
psycopg2 = "~=2.9.5"
1111
python-dotenv = "~=0.21.1"
1212
dj-database-url = "~=1.2.0"
1313
djangorestframework = "~=3.14.0"
14-
tiktoken = "~=0.3.2"
14+
tiktoken = "~=0.4.0"
1515
djangorestframework-simplejwt = "~=5.2.2"
1616
mysqlclient = "~=2.1.1"
1717
django-allauth = "~=0.52.0"

chat/views.py

Lines changed: 41 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,20 @@ def delete_all(self, request):
206206
'gpt-4': {
207207
'name': 'gpt-4',
208208
'max_tokens': 8192,
209-
'max_prompt_tokens': 6196,
209+
'max_prompt_tokens': 6192,
210210
'max_response_tokens': 2000
211+
},
212+
'gpt-3.5-turbo-16k': {
213+
'name': 'gpt-3.5-turbo-16k',
214+
'max_tokens': 16384,
215+
'max_prompt_tokens': 12384,
216+
'max_response_tokens': 4000
217+
},
218+
'gpt-4-32k': {
219+
'name': 'gpt-4-32k',
220+
'max_tokens': 32768,
221+
'max_prompt_tokens': 24768,
222+
'max_response_tokens': 8000
211223
}
212224
}
213225

@@ -784,13 +796,19 @@ def num_tokens_from_text(text, model="gpt-3.5-turbo-0301"):
784796
encoding = tiktoken.get_encoding("cl100k_base")
785797

786798
if model == "gpt-3.5-turbo":
787-
print("Warning: gpt-3.5-turbo may change over time. Returning num tokens assuming gpt-3.5-turbo-0301.")
788-
return num_tokens_from_text(text, model="gpt-3.5-turbo-0301")
799+
print("Warning: gpt-3.5-turbo may change over time. Returning num tokens assuming gpt-3.5-turbo-0613.")
800+
return num_tokens_from_text(text, model="gpt-3.5-turbo-0613")
801+
elif model == "gpt-3.5-turbo-16k":
802+
print("Warning: gpt-3.5-turbo-16k may change over time. Returning num tokens assuming gpt-3.5-turbo-16k-0613.")
803+
return num_tokens_from_text(text, model="gpt-3.5-turbo-16k-0613")
789804
elif model == "gpt-4":
790805
print("Warning: gpt-4 may change over time. Returning num tokens assuming gpt-4-0314.")
791-
return num_tokens_from_text(text, model="gpt-4-0314")
806+
return num_tokens_from_text(text, model="gpt-4-0613")
807+
elif model == "gpt-4-32k":
808+
print("Warning: gpt-4 may change over time. Returning num tokens assuming gpt-4-0314.")
809+
return num_tokens_from_text(text, model="gpt-4-32k-0613")
792810

793-
if model not in ["gpt-3.5-turbo-0301", "gpt-4-0314"]:
811+
if model not in ["gpt-3.5-turbo-0613", "gpt-4-0613", "gpt-3.5-turbo-16k-0613", "gpt-4-32k-0613"]:
794812
raise NotImplementedError(f"""num_tokens_from_text() is not implemented for model {model}.""")
795813

796814
return len(encoding.encode(text))
@@ -804,17 +822,29 @@ def num_tokens_from_messages(messages, model="gpt-3.5-turbo-0301"):
804822
print("Warning: model not found. Using cl100k_base encoding.")
805823
encoding = tiktoken.get_encoding("cl100k_base")
806824
if model == "gpt-3.5-turbo":
807-
print("Warning: gpt-3.5-turbo may change over time. Returning num tokens assuming gpt-3.5-turbo-0301.")
808-
return num_tokens_from_messages(messages, model="gpt-3.5-turbo-0301")
825+
print("Warning: gpt-3.5-turbo may change over time. Returning num tokens assuming gpt-3.5-turbo-0613.")
826+
return num_tokens_from_messages(messages, model="gpt-3.5-turbo-0613")
827+
elif model == "gpt-3.5-turbo-16k":
828+
print("Warning: gpt-3.5-turbo-16 may change over time. Returning num tokens assuming gpt-3.5-turbo-16k-0613.")
829+
return num_tokens_from_messages(messages, model="gpt-3.5-turbo-16k-0613")
809830
elif model == "gpt-4":
810-
print("Warning: gpt-4 may change over time. Returning num tokens assuming gpt-4-0314.")
811-
return num_tokens_from_messages(messages, model="gpt-4-0314")
812-
elif model == "gpt-3.5-turbo-0301":
831+
print("Warning: gpt-4 may change over time. Returning num tokens assuming gpt-4-0613.")
832+
return num_tokens_from_messages(messages, model="gpt-4-0613")
833+
elif model == "gpt-4-32k":
834+
print("Warning: gpt-4 may change over time. Returning num tokens assuming gpt-4-0613.")
835+
return num_tokens_from_messages(messages, model="gpt-4-32k-0613")
836+
elif model == "gpt-3.5-turbo-0613":
813837
tokens_per_message = 4 # every message follows <|start|>{role/name}\n{content}<|end|>\n
814838
tokens_per_name = -1 # if there's a name, the role is omitted
815-
elif model == "gpt-4-0314":
839+
elif model == "gpt-3.5-turbo-16k-0613":
840+
tokens_per_message = 4 # every message follows <|start|>{role/name}\n{content}<|end|>\n
841+
tokens_per_name = -1 # if there's a name, the role is omitted
842+
elif model == "gpt-4-0613":
816843
tokens_per_message = 3
817844
tokens_per_name = 1
845+
elif model == "gpt-4-32k-0613":
846+
tokens_per_message = 4 # every message follows <|start|>{role/name}\n{content}<|end|>\n
847+
tokens_per_name = -1 # if there's a name, the role is omitted
818848
else:
819849
raise NotImplementedError(f"""num_tokens_from_messages() is not implemented for model {model}. See https://github.com/openai/openai-python/blob/main/chatml.md for information on how messages are converted to tokens.""")
820850
num_tokens = 0

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ mysqlclient==2.1.1
3838
numexpr==2.8.4
3939
numpy==1.24.3
4040
oauthlib==3.2.2
41-
openai==0.27.6
41+
openai==0.27.8
4242
openapi-schema-pydantic==1.2.4
4343
packaging==23.1
4444
platformdirs==3.5.0
@@ -61,7 +61,7 @@ soupsieve==2.4.1
6161
SQLAlchemy==2.0.12
6262
sqlparse==0.4.4
6363
tenacity==8.2.2
64-
tiktoken==0.3.3
64+
tiktoken==0.4.0
6565
tomli==2.0.1
6666
tomlkit==0.11.8
6767
tqdm==4.65.0

0 commit comments

Comments
 (0)