
将大型语言模型集成至Python代码
使用@prompt和@chatprompt装饰器创建返回结构化输出的函数,将大型语言模型(LLM)与Python代码结合,实现复杂逻辑。支持pydantic模型和内置Python类型的结构化输出、少样本提示、函数调用与并行调用、异步支持、流式输出和图像处理。兼容OpenAI和Anthropic等多个LLM提供商。通过设置环境变量快速配置magentic。
Magentic 是一个可以轻松将大型语言模型(LLM)集成到 Python 代码中的工具。通过使用 @prompt 和 @chatprompt 等装饰器,可以让这些模型生成结构化的输出。此外,还可以将 LLM 查询与普通的 Python 函数调用混合使用,以创建复杂的逻辑。
FunctionCall 和 ParallelFunctionCall 生成函数调用。async def 定义 magentic 函数,实现异步功能。Magentic 可以通过以下命令进行安装:
pip install magentic
或使用 poetry:
poetry add magentic
同时,需要配置 OpenAI API 密钥:设置环境变量 OPENAI_API_KEY。
@prompt 装饰器允许开发者定义一个 LLM 提示模板。在调用这个函数时,参数会自动填充到模板中,然后发送到 LLM,生成函数的输出。
from magentic import prompt @prompt('Add more "dude"ness to: {phrase}') def dudeify(phrase: str) -> str: ... dudeify("Hello, how are you?") # 输出: "Hey, dude! What's up? How's it going, my man?"
@chatprompt 和 @prompt 类似,但它允许使用聊天消息作为模板。可以通过提供例子来指导模型的输出。
from magentic import chatprompt, AssistantMessage, SystemMessage, UserMessage from pydantic import BaseModel class Quote(BaseModel): quote: str character: str @chatprompt( SystemMessage("You are a movie buff."), UserMessage("What is your favorite quote from Harry Potter?"), AssistantMessage( Quote( quote="It does not do to dwell on dreams and forget to live.", character="Albus Dumbledore", ) ), UserMessage("What is your favorite quote from {movie}?"), ) def get_movie_quote(movie: str) -> Quote: ... get_movie_quote("Iron Man") # 输出: Quote(quote='I am Iron Man.', character='Tony Stark')
LLM 还可以直接调用函数。当使用 @prompt 装饰函数时,它会返回一个 FunctionCall 对象,该对象可以使用模型提供的参数来执行。
from typing import Literal from magentic import prompt, FunctionCall def search_twitter(query: str, category: Literal["latest", "people"]) -> str: return "<twitter results>" @prompt( "Use the appropriate search function to answer: {question}", functions=[search_twitter], ) def perform_search(question: str) -> FunctionCall[str]: ... output = perform_search("What is the latest news on LLMs?") output() # 输出调用结果
该装饰器可用于在生成最终答案之前,自动执行多 个函数调用。
from magentic import prompt_chain def get_current_weather(location, unit="fahrenheit"): return {"temperature": "72", "unit": unit, "forecast": ["sunny", "windy"]} @prompt_chain( "What's the weather like in {city}?", functions=[get_current_weather], ) def describe_weather(city: str) -> str: ... describe_weather("Boston") # 输出: 'The current weather in Boston is 72°F and it is sunny and windy.'
Magentic 支持多种 LLM 供应商,通过环境变量和 ChatModel 配置相应的模型。例如:
from magentic import OpenaiChatModel, prompt @prompt("Say hello") def say_hello() -> str: ... with OpenaiChatModel("gpt-3.5-turbo", temperature=1): say_hello()
Magentic 提供了丰富多样的特性和易于使用的接口,大大简化了大型语言模型在 Python 中的集成使用。这为开发者提供了更灵活和强大工具去处理复杂的问题。


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平 台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号