mirror of
https://github.com/Skyvern-AI/skyvern.git
synced 2025-09-01 18:20:06 +00:00
fix cached_tokens & completion_tokens (#1986)
This commit is contained in:
parent
eb3eb4eede
commit
f924185caf
3 changed files with 21 additions and 36 deletions
30
poetry.lock
generated
30
poetry.lock
generated
|
@ -3337,13 +3337,13 @@ sympy = "*"
|
|||
|
||||
[[package]]
|
||||
name = "openai"
|
||||
version = "1.68.0"
|
||||
version = "1.67.0"
|
||||
description = "The official Python library for the openai API"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "openai-1.68.0-py3-none-any.whl", hash = "sha256:20e279b0f3a78cb4a95f3eab2a180f3ee30c6a196aeebd6bf642a4f88ab85ee1"},
|
||||
{file = "openai-1.68.0.tar.gz", hash = "sha256:c570c06c9ba10f98b891ac30a3dd7b5c89ed48094c711c7a3f35fb5ade6c0757"},
|
||||
{file = "openai-1.67.0-py3-none-any.whl", hash = "sha256:dbbb144f38739fc0e1d951bc67864647fca0b9ffa05aef6b70eeea9f71d79663"},
|
||||
{file = "openai-1.67.0.tar.gz", hash = "sha256:3b386a866396daa4bf80e05a891c50a7746ecd7863b8a27423b62136e3b8f6bc"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
@ -3351,10 +3351,8 @@ anyio = ">=3.5.0,<5"
|
|||
distro = ">=1.7.0,<2"
|
||||
httpx = ">=0.23.0,<1"
|
||||
jiter = ">=0.4.0,<1"
|
||||
numpy = ">=2.0.2"
|
||||
pydantic = ">=1.9.0,<3"
|
||||
sniffio = "*"
|
||||
sounddevice = ">=0.5.1"
|
||||
tqdm = ">4"
|
||||
typing-extensions = ">=4.11,<5"
|
||||
|
||||
|
@ -5326,26 +5324,6 @@ files = [
|
|||
{file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sounddevice"
|
||||
version = "0.5.1"
|
||||
description = "Play and Record Sound with Python"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
{file = "sounddevice-0.5.1-py3-none-any.whl", hash = "sha256:e2017f182888c3f3c280d9fbac92e5dbddac024a7e3442f6e6116bd79dab8a9c"},
|
||||
{file = "sounddevice-0.5.1-py3-none-macosx_10_6_x86_64.macosx_10_6_universal2.whl", hash = "sha256:d16cb23d92322526a86a9490c427bf8d49e273d9ccc0bd096feecd229cde6031"},
|
||||
{file = "sounddevice-0.5.1-py3-none-win32.whl", hash = "sha256:d84cc6231526e7a08e89beff229c37f762baefe5e0cc2747cbe8e3a565470055"},
|
||||
{file = "sounddevice-0.5.1-py3-none-win_amd64.whl", hash = "sha256:4313b63f2076552b23ac3e0abd3bcfc0c1c6a696fc356759a13bd113c9df90f1"},
|
||||
{file = "sounddevice-0.5.1.tar.gz", hash = "sha256:09ca991daeda8ce4be9ac91e15a9a81c8f81efa6b695a348c9171ea0c16cb041"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
CFFI = ">=1.0"
|
||||
|
||||
[package.extras]
|
||||
numpy = ["NumPy"]
|
||||
|
||||
[[package]]
|
||||
name = "soupsieve"
|
||||
version = "2.6"
|
||||
|
@ -6557,4 +6535,4 @@ type = ["pytest-mypy"]
|
|||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = "^3.11,<3.12"
|
||||
content-hash = "91915e847d90ac222cdedc44682ab71870d5b369e3a6b50c3a333a09a94bcbfc"
|
||||
content-hash = "9c7c1f0509dbec760fa08c7969f9ebf9a2b38c7f8ecf226817c473360306a9a8"
|
||||
|
|
|
@ -9,7 +9,7 @@ packages = [{ include = "skyvern" }, { include = "alembic" }]
|
|||
[tool.poetry.dependencies]
|
||||
python = "^3.11,<3.12"
|
||||
python-dotenv = "^1.0.0"
|
||||
openai = "<2.0"
|
||||
openai = "<1.68"
|
||||
sqlalchemy = {extras = ["mypy"], version = "^2.0.29"}
|
||||
aiohttp = "^3.8.5"
|
||||
python-multipart = "^0.0.6"
|
||||
|
|
|
@ -163,12 +163,15 @@ class LLMAPIHandlerFactory:
|
|||
LOG.exception("Failed to calculate LLM cost", error=str(e))
|
||||
llm_cost = 0
|
||||
prompt_tokens = response.get("usage", {}).get("prompt_tokens", 0)
|
||||
reasoning_tokens = (
|
||||
response.get("usage", {}).get("completion_tokens_details", {}).get("reasoning_tokens", 0)
|
||||
)
|
||||
completion_tokens = response.get("usage", {}).get("completion_tokens", 0)
|
||||
cached_tokens = response.get("usage", {}).get("prompt_tokens_details", {}).get("cached_tokens", 0)
|
||||
|
||||
reasoning_tokens = 0
|
||||
completion_token_detail = response.get("usage", {}).get("completion_tokens_details")
|
||||
if completion_token_detail:
|
||||
reasoning_tokens = completion_token_detail.reasoning_tokens or 0
|
||||
cached_tokens = 0
|
||||
cached_token_detail = response.get("usage", {}).get("prompt_tokens_details")
|
||||
if cached_token_detail:
|
||||
cached_tokens = cached_token_detail.cached_tokens or 0
|
||||
if step:
|
||||
await app.DATABASE.update_step(
|
||||
task_id=step.task_id,
|
||||
|
@ -351,10 +354,14 @@ class LLMAPIHandlerFactory:
|
|||
llm_cost = 0
|
||||
prompt_tokens = response.get("usage", {}).get("prompt_tokens", 0)
|
||||
completion_tokens = response.get("usage", {}).get("completion_tokens", 0)
|
||||
reasoning_tokens = (
|
||||
response.get("usage", {}).get("completion_tokens_details", {}).get("reasoning_tokens", 0)
|
||||
)
|
||||
cached_tokens = response.get("usage", {}).get("prompt_tokens_details", {}).get("cached_tokens", 0)
|
||||
reasoning_tokens = 0
|
||||
completion_token_detail = response.get("usage", {}).get("completion_tokens_details")
|
||||
if completion_token_detail:
|
||||
reasoning_tokens = completion_token_detail.reasoning_tokens or 0
|
||||
cached_tokens = 0
|
||||
cached_token_detail = response.get("usage", {}).get("prompt_tokens_details")
|
||||
if cached_token_detail:
|
||||
cached_tokens = cached_token_detail.cached_tokens or 0
|
||||
if step:
|
||||
await app.DATABASE.update_step(
|
||||
task_id=step.task_id,
|
||||
|
|
Loading…
Add table
Reference in a new issue