首頁 > 後端開發 > Python教學 > 使用 GemBatch 降低提示連結的成本

使用 GemBatch 降低提示連結的成本

Patricia Arquette
發布: 2024-11-25 16:14:10
原創
642 人瀏覽過

Taming the Cost of Prompt Chaining with GemBatch

提示鏈正在徹底改變我們與大型語言模型 (LLM) 互動的方式。透過將多個提示連結在一起,我們可以建立複雜、動態的對話並處理複雜的任務。但這種力量確實是有代價的。每次對 LLM 服務(例如 Google 的 Gemini)的 API 呼叫都會增加您的帳單。

許多LLM提供者提供了一個解決方案:批次處理。在一個請求中發送多個提示並享受大幅折扣(通常在 50% 左右!)。然而,在提示鏈工作流程中實現批次處理很快就會變成編碼噩夢。

批量提示連結的挑戰

想像一下您正在建立一個具有多步驟對話的聊天機器人。使用傳統的提示鏈接,您將發送每個用戶訊息並等待模型的回應,然後再製定下一個提示。但要利用批量折扣,您需要:

  • 累積提示:不是立即發送,而是大量收集提示。
  • 擁抱非同步性:發送批次並等待(可能需要更長的時間)作業完成。
  • 映射響應:批量結果到達後,將每個響應與鏈中相應的提示正確匹配。

除此之外,您還需要處理速率限制、錯誤和重試。這可能會導致難以閱讀、調試和維護的複雜程式碼。

輸入 GemBatch:您的即時連結英雄

GemBatch 是一個 Python 框架,旨在簡化與 Google Gemini 的批次提示連結。它與 Firebase 無縫集成,為您的 LLM 應用程式提供熟悉且可擴展的環境。

以下是 GemBatch 如何讓您的生活更輕鬆:

  • 輕鬆批次:GemBatch 在幕後處理批次提示的複雜性。您可以按順序定義提示鏈,就像使用傳統方法一樣。
  • 非同步處理:GemBatch 管理非同步批次作業,確保您的提示鏈順利執行,而不會阻塞您的應用程式。
  • 簡化的回應對應: GemBatch 會自動將回應路由回提示鏈中的正確點。
  • 節省成本:透過利用 Gemini 的批量折扣,GemBatch 可以顯著降低您的 LLM API 成本。

一個簡單的例子

import gembatch

# Define a simple prompt chain
def task_a_prompt1():
    gembatch.submit(
        {
            "contents": [
                {
                    "role": "user",
                    "parts": [{"text": "What is the capital of France?"}],
                }
            ],
        },  # prompt 1
        "publishers/google/models/gemini-1.5-pro-002",
        task_a_prompt2
    )

def task_a_prompt2(response: generative_models.GenerationResponse):
    gembatch.submit(
        {
            "contents": [
                {
                    "role": "model",
                    "parts": [{"text": response.text}],
                },
                {
                    "role": "user",
                    "parts": [{"text": f"And what is the population of {response.text}?"}],
                }
            ],
        },  # prompt 2
        "publishers/google/models/gemini-1.5-pro-002",
        task_a_output
    )

def task_a_output(response: generative_models.GenerationResponse):
    print(response.text)

# Start the prompt chain
task_a_prompt1() 
登入後複製

這個簡單的範例示範了 Gembatch 如何允許您使用 gembatch.submit() 定義提示鏈。 Gembatch 負責對 Gemini 的請求進行批次並管理非同步回應。

開始使用 Gembatch

準備好釋放經濟高效的提示鏈的力量了嗎?查看 GitHub 上的 Gembatch 儲存庫:

https://github.com/blueworrybear/gembatch

我們歡迎回饋和建議!

以上是使用 GemBatch 降低提示連結的成本的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板