Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions rag/llm/cv_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -688,8 +688,7 @@ def chat_streamly(self, system, history, gen_conf, images=[], **kwargs):
try:
response = self._request(self._form_history(system, history, images), gen_conf)
cnt = response["choices"][0]["message"]["content"]
if "usage" in response and "total_tokens" in response["usage"]:
total_tokens += total_token_count_from_response(response)
total_tokens += total_token_count_from_response(response)
for resp in cnt:
yield resp
except Exception as e:
Expand Down Expand Up @@ -738,7 +737,7 @@ def describe_with_prompt(self, image, prompt=None):
prompt = self.prompt(b64, prompt if prompt else vision_llm_describe_prompt())

response = self.client.messages.create(model=self.model_name, max_tokens=self.max_tokens, messages=prompt)
return response["content"][0]["text"].strip(), response["usage"]["input_tokens"] + response["usage"]["output_tokens"]
return response["content"][0]["text"].strip(), total_token_count_from_response(response)

def _clean_conf(self, gen_conf):
if "presence_penalty" in gen_conf:
Expand All @@ -765,7 +764,7 @@ def chat(self, system, history, gen_conf, images=[]):
ans += "...\nFor the content length reason, it stopped, continue?" if is_english([ans]) else "······\n由于长度的原因,回答被截断了,要继续吗?"
return (
ans,
response["usage"]["input_tokens"] + response["usage"]["output_tokens"],
total_token_count_from_response(response),
)
except Exception as e:
return ans + "\n**ERROR**: " + str(e), 0
Expand Down
6 changes: 6 additions & 0 deletions rag/utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,12 @@ def total_token_count_from_response(resp):
return resp["usage"]["total_tokens"]
except Exception:
pass

if 'usage' in resp and 'input_tokens' in resp['usage'] and 'output_tokens' in resp['usage']:
try:
return resp["usage"]["input_tokens"] + resp["usage"]["output_tokens"]
except Exception:
pass
return 0


Expand Down