注意成本管理

管理 OpenAI API 使用成本的第一步是隨時(shí)了解您的使用情況。OpenAI 提供的儀表板在 使用 選項(xiàng)卡下,詳細(xì)展示了每日 API 調(diào)用次數(shù)、消耗的代幣(tokens)以及相關(guān)成本。通過定期監(jiān)控這些數(shù)據(jù),您可以識(shí)別潛在的浪費(fèi)并采取措施減少不必要的開支。


清點(diǎn)代幣使用情況

了解代幣的使用情況是控制成本的關(guān)鍵。以下是一個(gè) Python 示例代碼,用于計(jì)算輸入文本的代幣數(shù)量:

import tiktoken

def get_number_of_tokens(prompt_text, model_name):

# 獲取模型的編碼方式
 encoding = tiktoken.encoding_for_model('gpt-4o-mini')

# 將文本編碼為代幣列表
 list_of_tokens = encoding.encode(prompt_text)
 return len(list_of_tokens)

注意隱藏代幣

  1. 函數(shù)調(diào)用
    使用 OpenAI API 時(shí),所有函數(shù)名稱、描述和額外參數(shù)都會(huì)計(jì)入輸入代幣。如果使用多個(gè)函數(shù),累積的代幣使用量可能會(huì)顯著增加。OpenAI 提供了 代碼示例 來幫助統(tǒng)計(jì)這些輸入代幣。

  2. 內(nèi)存機(jī)制
    像 LangChain 這樣的框架通常內(nèi)置內(nèi)存機(jī)制,會(huì)收集先前調(diào)用的上下文信息。這些上下文雖然有助于提高模型的連貫性,但也會(huì)增加代幣使用量。為了控制成本,可以通過 緩沖摘要選擇性保留 等策略來管理內(nèi)存。

  3. 推理代幣
    新一代模型(如 gpt-4o 和 gpt-4o-mini)會(huì)使用內(nèi)部推理代幣。這些代幣雖然不會(huì)出現(xiàn)在用戶的輸出中,但仍然會(huì)計(jì)入成本。

檢查實(shí)際使用數(shù)據(jù)

API 調(diào)用的使用數(shù)據(jù)可以提供詳細(xì)的成本分解,包括輸入代幣、緩存代幣和推理代幣。以下是一個(gè)示例代碼:

def create_chat_completion_object(query):
 response = client.chat.completions.create(
 model="gpt-4o-mini",
 messages=[
 {"role": "system", "content": "You are a helpful assistant."},
 {"role": "user", "content": f"{query}"}
 ],
 )
 return response

# 示例調(diào)用
chat_object = create_chat_completion_object("What is the capital of India?")
print('Response:', chat_object.choices[0].message.content)
print('Usage:', chat_object.usage)

輸出示例:

Response: The capital of India is New Delhi.
Usage: CompletionUsage(completion_tokens=8, prompt_tokens=24, total_tokens=32)

使用緩存優(yōu)化成本

緩存是一種強(qiáng)大的功能,可以優(yōu)化涉及大上下文的 API 調(diào)用。例如,當(dāng)需要對(duì)一篇長(zhǎng)文進(jìn)行多次提問時(shí),可以通過緩存復(fù)用初始上下文,從而降低成本。

緩存的工作原理

注意事項(xiàng):

更多詳情請(qǐng)參考 OpenAI 的 Prompt Caching 指南


使用批處理降低成本

批處理允許您同時(shí)發(fā)送多個(gè)請(qǐng)求,從而顯著降低每次請(qǐng)求的成本。OpenAI 對(duì)批處理任務(wù)的輸入和輸出代幣提供 50% 的折扣

應(yīng)用場(chǎng)景

  1. 批量嵌入(Batch Embedding)
    適用于大規(guī)模數(shù)據(jù)的高效處理。具體優(yōu)化指南可以參考 批量嵌入教程

  2. 批量聊天請(qǐng)求(Batch Chat Requests)
    使用 OpenAI 的框架,可以高效處理批量聊天任務(wù)。更多信息請(qǐng)參考 OpenAI 的 批處理指南


限制輸入代幣:上下文過濾

在處理大文本時(shí),許多信息可能是無關(guān)的,直接使用會(huì)增加成本并降低性能。以下是兩種常見的上下文過濾策略:

  1. 基于嵌入的過濾

  2. 基于廉價(jià)模型的判斷過濾


限制輸出代幣:結(jié)構(gòu)化輸出

輸出代幣的成本是輸入代幣的三倍,因此減少輸出代幣是優(yōu)化成本的關(guān)鍵。通過結(jié)構(gòu)化輸出,可以確保 API 僅生成所需的信息,從而避免不必要的代幣浪費(fèi)。

結(jié)構(gòu)化輸出的應(yīng)用場(chǎng)景

  1. 分類/驗(yàn)證任務(wù)
    當(dāng)需要對(duì)數(shù)據(jù)進(jìn)行分類或驗(yàn)證時(shí),結(jié)構(gòu)化輸出可以減少冗余代幣。

  2. 數(shù)據(jù)提取
    如果目標(biāo)是提取特定信息(如數(shù)值),結(jié)構(gòu)化輸出可以確保僅返回所需數(shù)據(jù)。

  3. 模型鏈?zhǔn)秸{(diào)用
    在多步驟流程中,結(jié)構(gòu)化輸出可以確保輸出的兼容性并減少開銷。

以下是一個(gè)使用結(jié)構(gòu)化輸出的示例代碼:

from pydantic import BaseModel

class custom_output(BaseModel):
 a: list[bool]

completion = client.beta.chat.completions.parse(
 model="gpt-4o-mini",
 messages=[
 {"role": "system", "content": "You will receive a list of animals, for each animal return True if they are a mammal, else return False, output as a list of booleans nothing else."},
 {"role": "user", "content": "Lion, Eagle, Dolphin, Crocodile, Elephant, Snake, Kangaroo, Frog, Tiger, Penguin, Whale, Shark, Giraffe, Octopus, Bear, Turtle, Deer, Lizard, Rabbit, Butterfly"}
 ],
 response_format=custom_output,
)

result = completion.choices[0].message.parsed
print(result.a)
print(completion.usage)

輸出示例:

[True, False, True, False, True, False, True, False, True, False, True, False, True, False, True, False, True, False, True, False]
CompletionUsage(completion_tokens=24, prompt_tokens=138, total_tokens=162)

通過以上策略,您可以有效地管理 OpenAI API 的使用成本,同時(shí)確保實(shí)現(xiàn)預(yù)期的功能和性能。


原文鏈接: https://medium.com/@mikehpg/controlling-cost-when-using-openai-api-fd5a038fa391

上一篇:

第三方api:最大化潛力與管理風(fēng)險(xiǎn)

下一篇:

API管理工具:企業(yè)集成十大解決方案...
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)