mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-17 11:05:56 +08:00
Signed-off-by: yihong0618 <zouzou0208@gmail.com>
This commit is contained in:
parent
47a64610ca
commit
1f38d4846b
@ -807,34 +807,37 @@ class OAIAPICompatLargeLanguageModel(_CommonOaiApiCompat, LargeLanguageModel):
|
|||||||
|
|
||||||
# calculate num tokens for function object
|
# calculate num tokens for function object
|
||||||
num_tokens += self._get_num_tokens_by_gpt2("name")
|
num_tokens += self._get_num_tokens_by_gpt2("name")
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(tool.name)
|
if hasattr(tool, "name"):
|
||||||
|
num_tokens += self._get_num_tokens_by_gpt2(tool.name)
|
||||||
num_tokens += self._get_num_tokens_by_gpt2("description")
|
num_tokens += self._get_num_tokens_by_gpt2("description")
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(tool.description)
|
if hasattr(tool, "description"):
|
||||||
parameters = tool.parameters
|
num_tokens += self._get_num_tokens_by_gpt2(tool.description)
|
||||||
num_tokens += self._get_num_tokens_by_gpt2("parameters")
|
if hasattr(tool, "parameters"):
|
||||||
if "title" in parameters:
|
parameters = tool.parameters
|
||||||
num_tokens += self._get_num_tokens_by_gpt2("title")
|
num_tokens += self._get_num_tokens_by_gpt2("parameters")
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(parameters.get("title"))
|
if "title" in parameters:
|
||||||
num_tokens += self._get_num_tokens_by_gpt2("type")
|
num_tokens += self._get_num_tokens_by_gpt2("title")
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(parameters.get("type"))
|
num_tokens += self._get_num_tokens_by_gpt2(parameters.get("title"))
|
||||||
if "properties" in parameters:
|
num_tokens += self._get_num_tokens_by_gpt2("type")
|
||||||
num_tokens += self._get_num_tokens_by_gpt2("properties")
|
num_tokens += self._get_num_tokens_by_gpt2(parameters.get("type"))
|
||||||
for key, value in parameters.get("properties").items():
|
if "properties" in parameters:
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(key)
|
num_tokens += self._get_num_tokens_by_gpt2("properties")
|
||||||
for field_key, field_value in value.items():
|
for key, value in parameters.get("properties", {}).items():
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(field_key)
|
num_tokens += self._get_num_tokens_by_gpt2(key)
|
||||||
if field_key == "enum":
|
for field_key, field_value in value.items():
|
||||||
for enum_field in field_value:
|
|
||||||
num_tokens += 3
|
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(enum_field)
|
|
||||||
else:
|
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(field_key)
|
num_tokens += self._get_num_tokens_by_gpt2(field_key)
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(str(field_value))
|
if field_key == "enum":
|
||||||
if "required" in parameters:
|
for enum_field in field_value:
|
||||||
num_tokens += self._get_num_tokens_by_gpt2("required")
|
num_tokens += 3
|
||||||
for required_field in parameters["required"]:
|
num_tokens += self._get_num_tokens_by_gpt2(enum_field)
|
||||||
num_tokens += 3
|
else:
|
||||||
num_tokens += self._get_num_tokens_by_gpt2(required_field)
|
num_tokens += self._get_num_tokens_by_gpt2(field_key)
|
||||||
|
num_tokens += self._get_num_tokens_by_gpt2(str(field_value))
|
||||||
|
if "required" in parameters:
|
||||||
|
num_tokens += self._get_num_tokens_by_gpt2("required")
|
||||||
|
for required_field in parameters["required"]:
|
||||||
|
num_tokens += 3
|
||||||
|
num_tokens += self._get_num_tokens_by_gpt2(required_field)
|
||||||
|
|
||||||
return num_tokens
|
return num_tokens
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user