首页 > 其他分享 >litellm - 简化大模型 API 调用的工具

litellm - 简化大模型 API 调用的工具

时间:2024-11-20 14:19:22浏览次数:3  
标签:completion 调用 litellm messages API KEY os response

更多AI开源软件:

AI开源 - 小众AIicon-default.png?t=O83Ahttps://www.aiinn.cn/sources

11000 Stars 1300 Forks 445 Issues 275 贡献者 MIT License Python 语言

代码: GitHub - BerriAI/litellm: Python SDK, Proxy Server (LLM Gateway) to call 100+ LLM APIs in OpenAI format - [Bedrock, Azure, OpenAI, VertexAI, Cohere, Anthropic, Sagemaker, HuggingFace, Replicate, Groq]

主页: https://docs.litellm.ai/

litellm该项目能够将各种 AI 大模型和服务的接口,统一转换成 OpenAI 的格式,简化了在不同 AI 服务/大模型切换和管理的工作。此外,它还支持设置预算、限制请求频率、管理 API Key 和配置 OpenAI 代理服务器等功能。

liteLLM

主要功能

使用相同的输入输出格式调用100多个大型语言模型(LLMs)

  • 将输入转换为服务提供商的完成、嵌入和图像生成等端点所需的格式
  • 确保输出的一致性,文本响应始终位于[‘choices’][0][‘message’][‘content’]路径下
  • 在多个部署(如Azure、OpenAI等)之间实现重试/回退逻辑 - 路由器
  • 跟踪支出并为每个项目设置预算 - OpenAI代理服务器

使用说明

LiteLLM v1.0.0 now requires openai>=1.0.0​. Migration guide here
LiteLLM v1.40.14+ now requires pydantic>=2.0.0​. No changes required.

pip install litellm
from litellm import completion
import os

## set ENV variables
os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["COHERE_API_KEY"] = "your-cohere-key"

messages = [{ "content": "Hello, how are you?","role": "user"}]

# openai call
response = completion(model="gpt-3.5-turbo", messages=messages)

# cohere call
response = completion(model="command-nightly", messages=messages)
print(response)

Call any model supported by a provider, with model=<provider_name>/<model_name>​. There might be provider-specific details here, so refer to provider docs for more information

异步
from litellm import acompletion
import asyncio

async def test_get_response():
    user_message = "Hello, how are you?"
    messages = [{"content": user_message, "role": "user"}]
    response = await acompletion(model="gpt-3.5-turbo", messages=messages)
    return response

response = asyncio.run(test_get_response())
print(response)

liteLLM supports streaming the model response back, pass stream=True​ to get a streaming iterator in response.
Streaming is supported for all models (Bedrock, Huggingface, TogetherAI, Azure, OpenAI, etc.)

from litellm import completion
response = completion(model="gpt-3.5-turbo", messages=messages, stream=True)
for part in response:
    print(part.choices[0].delta.content or "")

# claude 2
response = completion('claude-2', messages, stream=True)
for part in response:
    print(part.choices[0].delta.content or "")
日志

LiteLLM exposes pre defined callbacks to send data to Lunary, Langfuse, DynamoDB, s3 Buckets, Helicone, Promptlayer, Traceloop, Athina, Slack

from litellm import completion

## set env variables for logging tools
os.environ["LUNARY_PUBLIC_KEY"] = "your-lunary-public-key"
os.environ["HELICONE_API_KEY"] = "your-helicone-auth-key"
os.environ["LANGFUSE_PUBLIC_KEY"] = ""
os.environ["LANGFUSE_SECRET_KEY"] = ""
os.environ["ATHINA_API_KEY"] = "your-athina-api-key"

os.environ["OPENAI_API_KEY"]

# set callbacks
litellm.success_callback = ["lunary", "langfuse", "athina", "helicone"] # log input/output to lunary, langfuse, supabase, athina, helicone etc

#openai call
response = completion(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hi 

标签:completion,调用,litellm,messages,API,KEY,os,response
From: https://blog.csdn.net/puterkey/article/details/143904999

相关文章

  • C#调用python的方法
    1.Python.NET:Python.NET允许在C#中直接调用Python代码。它提供了对Python解释器的嵌入支持,并且可以在Windows和Linux上运行。使用Python.NET,你可以在C#中加载Python模块并调用函数。2.IronPython:IronPython是一个Python实现,运行在.NET平台上。它允许你在.NET应用程序中直接执......
  • 开发一份API接口,需要注意这些,看你做到了几项
    在实际工作中,我们需要经常跟外部三方系统打交道,可能会提供API接口给外部三方系统调用。API接口通常通过WebController来实现。如果设计一个优雅的API接口,能够满足安全性、稳定性、易维护等多方面需求呢?下面几项,看你做到了哪些。1.数字签名为了防止API接口中的数据被篡改,我们......
  • 模拟线程池与异步方法调用查询接口优化
    问题:批量查询如何优化?entity实体类packagecom.itheima.alipay.prop;importlombok.Data;@DatapublicclassUserInfo{privateLonguserId;privateStringusername;privateintage;publicUserInfo(LonguserId,Stringusername,intage){......
  • 【2024最新股票数据接口】API接口大全,包含最新实时数据、历史数据等各项数据接口(三)
    在量化分析这一领域,实时且准确的数据接口是必不可少的。经过大量实际测试后,我可以确定下面所列举的数据接口全都稳定且能正常使用,而且我已经为大家准备好了可以直接点击的超链接。只要轻轻点击一下,就能获取相应的数据,同时马上验证接口是否有效。此刻,我非常愿意把这些珍贵的资源......
  • 个人做量化,获取 L2 数据的高性价比之选:必盈 API
    在量化投资的世界里,数据就是黄金。对于个人量化投资者而言,专业数据库高昂的价格常常让人望而却步,而L2数据(二级行情数据)又对交易策略的制定有着至关重要的作用。今天就给大家介绍一个绝佳的解决方案——biyingapi.com。一、为什么需要L2数据L2数据包含了比普通行情数据......
  • arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)
    前言关于本篇功能实现用到的api涉及类看不懂的,请参照esri官网的arcgisapi3.xforjs:esri官网api,里面详细的介绍arcgisapi3.x各个类的介绍,还有就是在线例子:esri官网在线例子,这个也是学习arcgisapi3.x的好素材。内容概览基于arcgisapi3.x叠加SHP......
  • arcgis api 3.x for js 入门开发系列十四最近设施点路径分析(附源码下载)
    前言关于本篇功能实现用到的api涉及类看不懂的,请参照esri官网的arcgisapi3.xforjs:esri官网api,里面详细的介绍arcgisapi3.x各个类的介绍,还有就是在线例子:esri官网在线例子,这个也是学习arcgisapi3.x的好素材。内容概览基于arcgisapi3.x实现最近设......
  • Java API 进阶指南:从核心API到高级应用的全面提升
    文章目录JavaAPI进阶学习指南1.深入理解核心API1.1集合框架(CollectionsFramework)1.2输入输出流(I/OStreams)1.3并发编程(Concurrency)1.4反射(Reflection)1.5泛型(Generics)2.高级API应用2.1网络编程2.2数据库访问2.3日志记录2.4性能优化3.最佳实践3.1代码规......
  • Java API 学习指南:从入门到精通的全面指导
    文章目录JavaAPI学习指南1.了解JavaAPI的基本概念2.掌握基础的Java知识3.使用官方文档4.实践练习5.深入理解关键API6.关注最新的API更新7.加入社区8.创造性地应用JavaAPI学习指南1.了解JavaAPI的基本概念API是一系列预定义的函数或类,它们提供了......
  • 【2024最新股票数据接口】API接口大全,包含最新实时数据、历史数据等各项数据接口
    在量化分析这一领域,实时且准确的数据接口是必不可少的。经过大量实际测试后,我可以确定下面所列举的数据接口全都稳定且能正常使用,而且我已经为大家准备好了可以直接点击的超链接。只要轻轻点击一下,就能获取相应的数据,同时马上验证接口是否有效。此刻,我非常愿意把这些珍贵的资源......