Promptic:轻量级 LLM 应用开发框架,提供完善的底层功能,使开发者更专注于构建上层功能

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: Promptic 是一个轻量级的 LLM 应用开发框架,支持通过一行代码切换不同的 LLM 服务提供商。它提供了类型安全的输出、流式支持、内置对话记忆、错误处理和重试等功能,帮助开发者专注于构建功能,而不是底层的复杂性。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 轻量级框架:Promptic 是一个轻量级的 LLM 应用开发框架,基于 LiteLLM 构建,支持通过一行代码切换不同的 LLM 服务提供商。
  2. 主要功能:提供类型安全的输出、流式支持、内置对话记忆、错误处理和重试等功能,帮助开发者专注于构建功能。
  3. 技术原理:通过 LiteLLM 集成、装饰器模式、动态提示生成、响应验证和状态管理等技术实现其功能。

正文(附运行示例)

Promptic 是什么

公众号: 蚝油菜花 - promptic

Promptic 是一个轻量级的 LLM 应用开发框架,旨在提供高效且符合 Python 风格的开发方式。它基于 LiteLLM 构建,支持开发者轻松切换不同的 LLM 服务提供商,只需更改一行代码。Promptic 提供了流式响应、内置对话记忆、错误处理和重试等功能,帮助开发者专注于构建功能,而不是底层的复杂性。

Promptic 的灵活性和易用性使其成为 LLM 开发领域的有力助手。无论是构建聊天机器人、内容生成、语言翻译还是情感分析,Promptic 都能提供强大的支持。

Promptic 的主要功能

  • 类型安全的输出:使用 Pydantic 模型确保 LLM 返回的数据结构符合预期,提高代码的健壮性。
  • 代理构建:创建能被 LLM 调用的工具函数,实现复杂的任务分解。
  • 流式支持:支持实时响应生成,适用于长内容或交互式应用场景。
  • 内置对话记忆:支持 LLM 在多次交互中保持上下文,增强用户体验。
  • 错误处理和重试:提供错误处理机制和自动重试功能,增强应用的稳定性和可靠性。

Promptic 的技术原理

  • LiteLLM 集成:基于 LiteLLM 构建,LiteLLM 是轻量级的 LLM 客户端库,抽象不同 LLM 提供商的 API。
  • 装饰器模式:使用 Python 装饰器扩展函数功能,如 @llm@llm.tool,无需修改函数内部代码即可增加新的行为。
  • 动态提示生成:将函数的文档字符串与实际参数动态组合生成提示(prompt),发送给 LLM 进行处理。
  • 响应验证:基于 Pydantic 模型对 LLM 的响应进行验证,确保数据的正确性和完整性。
  • 状态管理:基于 State 类实现对话状态的管理,支持对话记忆功能,让开发者自定义存储解决方案。

如何运行 Promptic

安装

首先,通过 pip 安装 Promptic:

pip install promptic

基本用法

使用 @llm 装饰器可以将函数转换为 LLM 驱动的函数。函数的文档字符串将作为提示模板,与函数参数结合生成提示并返回 LLM 的响应。

from promptic import llm

@llm
def translate(text, language="Chinese"):
    """Translate '{text}' to {language}"""

print(translate("Hello world!"))
# 您好,世界!

print(translate("Hello world!", language="Spanish"))
# ¡Hola, mundo!

结构化输出

使用 Pydantic 模型可以确保 LLM 返回的数据结构符合预期。只需定义一个 Pydantic 模型并将其用作返回类型注解。

from pydantic import BaseModel
from promptic import llm

class Forecast(BaseModel):
    location: str
    temperature: float
    units: str

@llm
def get_weather(location, units: str = "fahrenheit") -> Forecast:
    """What's the weather for {location} in {units}?"""

print(get_weather("San Francisco", units="celsius"))
# location='San Francisco' temperature=16.0 units='Celsius'

代理构建

使用 @llm.tool 装饰器可以将函数注册为工具,LLM 可以调用这些工具来执行操作或获取信息。

from datetime import datetime
from promptic import llm

@llm(model="gpt-4o")
def scheduler(command):
    """{command}"""

@scheduler.tool
def get_current_time():
    """Get the current time"""
    return datetime.now().strftime("%I:%M %p")

@scheduler.tool
def add_reminder(task: str, time: str):
    """Add a reminder for a specific task and time"""
    return f"Reminder set: {task} at {time}"

cmd = """
What time is it?
Also, can you check my calendar for tomorrow
and set a reminder for a team meeting at 2pm?
"""

print(scheduler(cmd))
# The current time is 3:48 PM. I checked your calendar for tomorrow, and there are no conflicts. I've also set a reminder for your team meeting at 2 PM tomorrow.

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
3月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
811 2
|
29天前
|
机器学习/深度学习 人工智能 算法
LLM超越人类时该如何对齐?谷歌用新RLHF框架解决了这个问题
谷歌提出了一种名为Evolving Alignment via Asymmetric Self-Play(eva)的新RLHF框架,通过创造者和解决者交替优化,生成具有挑战性的提示,提高模型泛化能力、样本效率和对齐鲁棒性。实验结果显示,eva在多个基准上显著提升性能,展示了其创新性和有效性。然而,eva的实现较为复杂,且实际应用中的长期效果仍待验证。
47 5
|
14天前
|
人工智能 知识图谱 Docker
KAG:增强 LLM 的专业能力!蚂蚁集团推出专业领域知识增强框架,支持逻辑推理和多跳问答
KAG 是蚂蚁集团推出的专业领域知识服务框架,通过知识增强提升大型语言模型在特定领域的问答性能,支持逻辑推理和多跳事实问答,显著提升推理和问答的准确性和效率。
252 46
KAG:增强 LLM 的专业能力!蚂蚁集团推出专业领域知识增强框架,支持逻辑推理和多跳问答
|
5天前
|
人工智能 数据可视化 开发者
FlowiseAI:34K Star!集成多种模型和100+组件的 LLM 应用低代码开发平台,拖拽组件轻松构建程序
FlowiseAI 是一款开源的低代码工具,通过拖拽可视化组件,用户可以快速构建自定义的 LLM 应用程序,支持多模型集成和记忆功能。
58 14
FlowiseAI:34K Star!集成多种模型和100+组件的 LLM 应用低代码开发平台,拖拽组件轻松构建程序
|
1月前
|
弹性计算 自然语言处理 数据库
通过阿里云Milvus和LangChain快速构建LLM问答系统
本文介绍如何通过整合阿里云Milvus、阿里云DashScope Embedding模型与阿里云PAI(EAS)模型服务,构建一个由LLM(大型语言模型)驱动的问题解答应用,并着重演示了如何搭建基于这些技术的RAG对话系统。
|
1月前
|
缓存 算法 关系型数据库
MIT韩松团队长上下文LLM推理高效框架DuoAttention:单GPU实现330万Token上下文推理
麻省理工学院韩松团队提出DuoAttention框架,旨在提高大型语言模型(LLM)处理长上下文的效率。该框架通过区分检索头和流式头,仅对检索头应用全键值缓存,减少内存消耗和计算时间,同时保持模型长上下文处理能力。实验结果显示,DuoAttention在多种模型架构上显著提升了推理效率,为LLM的实际应用提供了新可能。
76 14
|
1月前
|
人工智能 算法
图像伪造照妖镜!北大发布多模态LLM图像篡改检测定位框架FakeShield
北京大学研究团队提出了一种名为FakeShield的多模态框架,旨在解决图像伪造检测与定位(IFDL)中的黑箱问题及泛化能力不足。FakeShield不仅能评估图像真实性,生成篡改区域的掩码,还能提供像素级和图像级的篡改线索及详细文本描述,增强检测的可解释性。通过使用GPT-4o增强现有数据集,创建多模态篡改描述数据集(MMTD-Set),并引入领域标签引导的可解释伪造检测模块(DTE-FDM)和多模态伪造定位模块(MFLM),FakeShield在多种篡改技术的检测与定位上表现优异,为图像真实性维护提供了有力工具。
86 14
|
1月前
|
自然语言处理 资源调度 并行计算
从本地部署到企业级服务:十种主流LLM推理框架的技术介绍与对比
本文深入探讨了十种主流的大语言模型(LLM)服务引擎和工具,涵盖从轻量级本地部署到高性能企业级解决方案,详细分析了它们的技术特点、优势及局限性,旨在为研究人员和工程团队提供适合不同应用场景的技术方案。内容涉及WebLLM、LM Studio、Ollama、vLLM、LightLLM、OpenLLM、HuggingFace TGI、GPT4ALL、llama.cpp及Triton Inference Server与TensorRT-LLM等。
203 7
|
2月前
|
JSON 数据可视化 NoSQL
基于LLM Graph Transformer的知识图谱构建技术研究:LangChain框架下转换机制实践
本文介绍了LangChain的LLM Graph Transformer框架,探讨了文本到图谱转换的双模式实现机制。基于工具的模式利用结构化输出和函数调用,简化了提示工程并支持属性提取;基于提示的模式则为不支持工具调用的模型提供了备选方案。通过精确定义图谱模式(包括节点类型、关系类型及其约束),显著提升了提取结果的一致性和可靠性。LLM Graph Transformer为非结构化数据的结构化表示提供了可靠的技术方案,支持RAG应用和复杂查询处理。
194 2
基于LLM Graph Transformer的知识图谱构建技术研究:LangChain框架下转换机制实践
|
3月前
|
存储 人工智能 算法
精通RAG架构:从0到1,基于LLM+RAG构建生产级企业知识库
为了帮助更多人掌握大模型技术,尼恩和他的团队编写了《LLM大模型学习圣经》系列文档,包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构,基于LLM+RAG构建生产级企业知识库》和《从0到1吃透大模型的顶级架构》。这些文档不仅系统地讲解了大模型的核心技术,还提供了实战案例和配套视频,帮助读者快速上手。
精通RAG架构:从0到1,基于LLM+RAG构建生产级企业知识库

热门文章

最新文章