
使用這些基本 REST API 最佳實踐構建出色的 API
Model I/O由幾個部分組成。
Model I/O能干什么?
封裝模型API和處理輸入輸出數據,實現了模型的順暢交互,使得用戶可以方便地利用模型完成各種任務。
Model I/O的工作流程:格式化原始輸入數據,將其傳遞給模型以獲取預測結果,并將輸出解析為結構化格式,以供下游組件或應用程序使用。
Model I/O流程包含以下三個核心步驟:
Model I/O的核心組件:包括用于接收和生成文本的語言模型、指導輸入格式的提示模板、篩選訓練數據的示例選擇器,以及解析模型輸出的輸出解析器。
LLM(大語言模型):簡化了自定義LLM的開發過程,實現了LLM響應的緩存管理以降低成本和加速應用,支持LLM流式傳輸響應以提升效率。
import os
from langchain.llms import OpenAl
from langchain.prompts import PromptTemplate
# 設置 OpenAl API密鑰
os.environ["OPENAIAPI_KEY"]="YOUR_OPENAI_API KEY"
# 創建一個封裝了 OpenAl GPT 模型的自定義類
class CustomLLM:
def init (self, model name="gpt-3.5-turbo",temperature=0.9):
self.llm = OpenAl(model name=model name, temperature=temperature)
self.prompt template= PromptTemplate(
input_variables=["food"],
template="What are 5 vacation destinations for someone who likes to eat ffood}?"
)
def get_vacation_destinations(self, food):
prompt = self.prompt template.format(food=food)
return self.llm(prompt)
# 使用自定義類
custom_lm= CustomLLM()
print(custom llm.get vacation destinations("dessert"))
LLM
提供者返回的最終結果。import openai
# 設置您的OpenAI API密鑰
openai.api_key="YOUR API KEY"
def generate text and track tokens(prompt, max tokens=None, temperature=0.5):
# 使用OpenAl的Completion APl生成文本
response =openai.Completion.create(
engine="text-embedding-ada-002",#您可以更改為所需的模型,例如"text-generation-gpt-3.5-t
prompt=prompt,
max tokens=max tokens,
temperature=temperature
)
# 從響應中提取生成的文本和使用的token數量
generated text=response["choices"1[0]["text"]
used tokens =response["choices"1[0]["tokens_used"]#注意:不是所有模型都返回tokens_used字
# 打印結果和token使用情況
print(f"Generated Text: {generated text}")
print(f"Tokens Used: fused tokens}")
return generated text,used tokens
ChatModel(對話模型):實現緩存層減少API調用以降低成本、提升響應速度,同時提供簡潔語法和轉換器簡化模型管理,支持流式傳輸響應以優化用戶體驗。
ChatModel
提供者返回的最終結果。import openai
# 設置您的API密鑰
openai.api_key="您的API密鑰"
# 定義一個函數來發出API請求并跟蹤令牌使用情況
def chat and track tokens(model, messages, max tokens=None):
response =openai.ChatCompletion.create(
model=model,
messages=messages,
max tokens=max tokens
)
# 從響應中提取使用的令牌數量
used tokens = response["usage"]["total tokens"]
# 使用響應和令牌使用信息做某事
print(f"啊應: {response['choices'][0]['message']['content']}")
print(f"使用的令牌: {used _tokens}")
文章轉自微信公眾號@架構師帶你玩轉AI