Skip to main content

批量完成(Batching Completion)

LiteLLM 允许您:

  • 向一个模型发送多个完成调用
  • 向多个模型发送一个完成调用:返回最快响应
  • 向多个模型发送一个完成调用:返回所有响应
info

尝试在 LiteLLM Proxy 上进行批量完成?请访问:https://docs.litellm.ai/docs/proxy/user_keys#beta-batch-completions---pass-model-as-list

向一个模型发送多个完成调用

batch_completion 方法中,您提供一个 messages 列表,其中每个子列表的消息都传递给 litellm.completion(),使您能够在一个 API 调用中高效地处理多个提示。

Open In Colab

示例代码

import litellm
import os
from litellm import batch_completion

os.environ['ANTHROPIC_API_KEY'] = ""

responses = batch_completion(
model="claude-2",
messages = [
[
{
"role": "user",
"content": "早上好?"
}
],
[
{
"role": "user",
"content": "现在几点了?"
}
]
]
)

向多个模型发送一个完成调用:返回最快响应

这会并行调用指定的 models 并返回第一个响应

使用此功能以减少延迟

示例代码

import litellm
import os
from litellm import batch_completion_models

os.environ['ANTHROPIC_API_KEY'] = ""
os.environ['OPENAI_API_KEY'] = ""
os.environ['COHERE_API_KEY'] = ""

response = batch_completion_models(
models=["gpt-3.5-turbo", "claude-instant-1.2", "command-nightly"],
messages=[{"role": "user", "content": "嘿,最近怎么样"}]
)
print(response)

输出

返回 OpenAI 格式的第一个响应。取消其他 LLM API 调用。

{
"object": "chat.completion",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": " 我很好,谢谢你的关心!我是 Anthropic 创建的 AI 助手,旨在有益、无害和诚实。",
"role": "assistant",
"logprobs": null
}
}
],
"id": "chatcmpl-23273eed-e351-41be-a492-bafcf5cf3274",
"created": 1695154628.2076092,
"model": "command-nightly",
"usage": {
"prompt_tokens": 6,
"completion_tokens": 14,
"total_tokens": 20
}
}

向多个模型发送一个完成调用:返回所有响应

这会并行调用指定的模型并返回所有响应

使用此功能以并发处理请求并从多个模型获取响应。

示例代码

import litellm
import os
from litellm import batch_completion_models_all_responses

os.environ['ANTHROPIC_API_KEY'] = ""
os.environ['OPENAI_API_KEY'] = ""
os.environ['COHERE_API_KEY'] = ""

responses = batch_completion_models_all_responses(
models=["gpt-3.5-turbo", "claude-instant-1.2", "command-nightly"],
messages=[{"role": "user", "content": "嘿,最近怎么样"}]
)
print(responses)

输出

[
{
"object": "chat.completion",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": " 我很好,谢谢你的关心!我是 Anthropic 创建的 AI 助手,旨在有益、无害和诚实。",
"role": "assistant",
"logprobs": null
}
}
],
"id": "chatcmpl-23273eed-e351-41be-a492-bafcf5cf3274",
"created": 1695154628.2076092,
"model": "command-nightly",
"usage": {
"prompt_tokens": 6,
"completion_tokens": 14,
"total_tokens": 20
}
},
{
"object": "chat.completion",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": " 我很好,谢谢你的关心!我是 Anthropic 创建的 AI 助手,旨在有益、无害和诚实。",
"role": "assistant",
"logprobs": null
}
}
],
"id": "chatcmpl-23273eed-e351-41be-a492-bafcf5cf3274",
"created": 1695154628.2076092,
"model": "gpt-3.5-turbo",
"usage": {
"prompt_tokens": 6,
"completion_tokens": 14,
"total_tokens": 20
}
},
{
"object": "chat.completion",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": " 我很好,谢谢你的关心!我是 Anthropic 创建的 AI 助手,旨在有益、无害和诚实。",
"role": "assistant",
"logprobs": null
}
}
],
"id": "chatcmpl-23273eed-e351-41be-a492-bafcf5cf3274",
"created": 1695154628.2076092,
"model": "claude-instant-1.2",
"usage": {
"prompt_tokens": 6,
"completion_tokens": 14,
"total_tokens": 20
}
}
]

[<ModelResponse chat.completion id=chatcmpl-e673ec8e-4e8f-4c9e-bf26-bf9fa7ee52b9 at 0x103a62160> JSON: {
"object": "chat.completion",
"choices": [
{
"finish_reason": "stop_sequence",
"index": 0,
"message": {
"content": "一切进展顺利,谢谢你的关心!你呢?",
"role": "assistant",
"logprobs": null
}
}
],
"id": "chatcmpl-e673ec8e-4e8f-4c9e-bf26-bf9fa7ee52b9",
"created": 1695222060.917964,
"model": "claude-instant-1.2",
"usage": {
"prompt_tokens": 14,
"completion_tokens": 9,
"total_tokens": 23
}
}, <ModelResponse chat.completion id=chatcmpl-ab6c5bd3-b5d9-4711-9697-e28d9fb8a53c at 0x103a62b60> JSON: {
"object": "chat.completion",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "一切进展顺利,谢谢你的关心!你呢?",
"role": "assistant",
"logprobs": null
}
}
],
"id": "chatcmpl-ab6c5bd3-b5d9-4711-9697-e28d9fb8a53c",
"created": 1695222061.0445492,
"model": "command-nightly",
"usage": {
"prompt_tokens": 6,
"completion_tokens": 14,
"total_tokens": 20
}
}, <OpenAIObject chat.completion id=chatcmpl-80szFnKHzCxObW0RqCMw1hWW1Icrq at 0x102dd6430> JSON: {
"id": "chatcmpl-80szFnKHzCxObW0RqCMw1hWW1Icrq",
"object": "chat.completion",
"created": 1695222061,
"model": "gpt-3.5-turbo-0613",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!我是一个AI语言模型,没有情感,但我在这里帮助你解答任何问题或完成你可能有的任务。今天我能为你做些什么?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 13,
"completion_tokens": 39,
"total_tokens": 52
}
}]

使用Python进行数据分析

简介

数据分析是当今世界中的一项关键技能,而Python是这一领域的首选工具之一。Python拥有丰富的库和工具,如Pandas、NumPy、Matplotlib和Seaborn,使数据处理、分析和可视化变得简单而高效。

安装Python和相关库

要开始使用Python进行数据分析,首先需要安装Python和一些必要的库。以下是步骤:

  1. 安装Python:访问Python官网并下载适合你操作系统的Python版本。
  2. 安装库:使用pip安装所需的库。打开终端或命令提示符并运行以下命令:
    pip install pandas numpy matplotlib seaborn

使用Pandas进行数据处理

Pandas是Python中用于数据处理和分析的核心库。它提供了高效的数据结构,如DataFrame,使得数据操作变得简单。

创建DataFrame

你可以从各种来源创建一个DataFrame,例如CSV文件、Excel文件或直接从Python字典创建。

import pandas as pd

# 从CSV文件创建DataFrame
df = pd.read_csv('data.csv')

# 从字典创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']}
df = pd.DataFrame(data)

数据清洗

数据分析的第一步通常是数据清洗。Pandas提供了多种方法来处理缺失值、重复值和数据类型转换。

# 检查缺失值
df.isnull().sum()

# 删除缺失值
df.dropna(inplace=True)

# 填充缺失值
df.fillna(0, inplace=True)

# 删除重复值
df.drop_duplicates(inplace=True)

数据分析

Pandas提供了多种方法来进行基本的数据分析,如描述性统计、分组和聚合。

# 描述性统计
df.describe()

# 按城市分组并计算平均年龄
df.groupby('City')['Age'].mean()

# 计算总和
df['Age'].sum()

使用Matplotlib和Seaborn进行数据可视化

数据可视化是数据分析的重要组成部分。Matplotlib和Seaborn是两个强大的Python库,用于创建各种图表。

使用Matplotlib绘图

Matplotlib提供了广泛的绘图功能,从简单的折线图到复杂的3D图。

import matplotlib.pyplot as plt

# 创建折线图
plt.plot(df['Age'], df['City'])
plt.title('Age Distribution by City')
plt.xlabel('Age')
plt.ylabel('City')
plt.show()

使用Seaborn绘图

Seaborn是基于Matplotlib的高级库,提供了更简洁的API和更美观的默认样式。

import seaborn as sns

# 创建箱线图
sns.boxplot(x='City', y='Age', data=df)
plt.title('Age Distribution by City')
plt.show()

结论

Python提供了强大的工具和库,使得数据分析变得简单而高效。通过Pandas进行数据处理,使用Matplotlib和Seaborn进行数据可视化,你可以轻松地分析和理解数据。无论你是数据科学家、分析师还是研究人员,掌握这些工具都将大大提升你的工作效率。

优云智算