📢 转载信息
原文链接:https://machinelearningmastery.com/10-python-one-liners-for-calling-llms-from-your-code/
原文作者:Shittu Olumide

引言
调用大型语言模型(LLM)并不总是需要沉重的封装、庞大的客户端类或数十行样板代码。有时,一行精心编写的 Python 代码就能完成所有工作:发送提示,接收响应。这种简洁性可以加快原型开发速度,或者在不增加架构开销的情况下将 LLM 调用嵌入到脚本或管道中。
在本文中,您将看到十个调用和交互式 LLM 的 Python 单行代码片段。我们将涵盖:
- 托管 API:使用 OpenAI、Anthropic、Google Gemini、Mistral 和 Hugging Face 的示例
- 本地模型:如何从您的机器上调用 Ollama、LM Studio、vLLM
- 技巧与窍门:输出流式传输、异步调用、面向 Shell 的模式
每个代码片段都附有简短的解释和指向官方文档的链接,以便您可以验证底层发生了什么。读完之后,您不仅知道如何快速插入 LLM 调用,还将理解每种模式何时以及为何有效。
准备工作
在插入单行代码之前,需要准备几件事以确保它们顺利运行:
安装所需的软件包(仅需一次):
pip install openai anthropic google-generativeai requests httpx
确保您的 API 密钥设置在环境变量中,切勿硬编码到脚本中。例如:
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="claude-yourkey"
export GOOGLE_API_KEY="your_google_key"
对于本地设置(Ollama、LM Studio、vLLM),您需要本地运行模型服务器并监听正确的端口(例如,Ollama 的默认 REST API 运行在 http://localhost:11434)。
所有单行代码片段都假设您使用了正确的模型名称,并且该模型可通过云端或本地访问。准备好这些之后,您可以直接将每行代码粘贴到您的 Python REPL 或脚本中,即可获得响应,具体取决于配额或本地资源限制。
托管 API 单行代码片段(云端模型)
托管 API 是开始使用大型语言模型最简单的方法。您无需在本地运行模型或担心 GPU 内存;只需安装客户端库,设置 API 密钥,然后发送提示即可。这些 API 由模型提供商自行维护,因此它们可靠、安全且经常更新。
以下单行代码片段展示了如何直接从 Python 调用一些最受欢迎的托管模型。每个示例都发送一个简单的消息给模型并打印生成的响应。
1. OpenAI GPT 聊天补全
OpenAI 的 API 提供了对 GPT-4o 和 GPT-4o-mini 等模型的访问。SDK 负责处理从身份验证到响应解析的所有事情。
from openai import OpenAI; print(OpenAI().chat.completions.create(model="gpt-4o-mini", messages=[{"role":"user","content":"Explain vector similarity"}]).choices[0].message.content)
作用: 它创建一个客户端,向 GPT-4o-mini 发送一条消息,并打印模型的回复。
原理: openai Python 包简洁地封装了 REST API。您只需要将 OPENAI_API_KEY 设置为环境变量即可。
文档: OpenAI 聊天补全 API
2. Anthropic Claude
Anthropic 的 Claude 模型(Claude 3、Claude 3.5 Sonnet 等)以其超长的上下文窗口和细致的推理能力而闻名。它们的 Python SDK 遵循与 OpenAI 类似的聊天消息格式。
from anthropic import Anthropic; print(Anthropic().messages.create(model="claude-3-5-sonnet", messages=[{"role":"user","content":"How does chain of thought prompting work?"}]).content[0].text)
作用: 初始化 Claude 客户端,发送消息,并打印第一个响应块的文本。
原理: .messages.create() 方法使用标准的 角色 + 内容 消息架构,返回易于提取的结构化输出。
3. Google Gemini
Google 的 Gemini API(通过 google-generativeai 库)可以以最少的设置简单地调用多模态和文本模型。关键区别在于,Gemini 的 API 将每个提示视为“内容生成”,无论它是文本、代码还是推理。
import os, google.generativeai as genai; genai.configure(api_key=os.getenv("GOOGLE_API_KEY")); print(genai.GenerativeModel("gemini-1.5-flash").generate_content("Describe retrieval-augmented generation").text)
作用: 调用 Gemini 1.5 Flash 模型 来描述检索增强生成(RAG)并打印返回的文本。
原理: GenerativeModel() 设置模型名称,generate_content() 处理提示/响应流程。您只需要配置好 GOOGLE_API_KEY。
4. Mistral AI (REST 请求)
Mistral 提供了一个简单的聊天补全 REST API。您发送一个消息列表并接收一个结构化的 JSON 响应。
import requests, json; print(requests.post("https://api.mistral.ai/v1/chat/completions", headers={"Authorization":"Bearer YOUR_MISTRAL_API_KEY"}, json={"model":"mistral-tiny","messages":[{"role":"user","content":"Define fine-tuning"}]}).json()["choices"][0]["message"]["content"])
作用: 向 Mistral 的 API 发送一个聊天请求并打印助手的消息。
原理: 端点接受一个类似 OpenAI 的消息数组,并返回 choices -> message -> content。
请查看 Mistral API 参考和快速入门。
5. Hugging Face 推理 API
如果您在 Hugging Face 上托管模型或使用公共模型,您只需一个 POST 请求即可调用它。text-generation 任务以 JSON 格式返回生成的文本。
import requests; print(requests.post("https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.2", headers={"Authorization":"Bearer YOUR_HF_TOKEN"}, json={"inputs":"Write a haiku about data"}).json()[0]["generated_text"])
作用: 向 Hugging Face 上托管的模型发送提示并打印生成的文本。
原理: 推理 API 暴露了特定任务的端点;对于文本生成,它返回一个包含 generated_text 的列表。
文档:推理 API 和文本生成 任务页面。
本地模型单行代码片段
在本地机器上运行模型可以为您带来隐私和控制。您可以避免网络延迟并将数据保留在本地。权衡在于设置:您需要启动服务器并拉取模型。下面的单行代码片段假设您已经启动了本地服务。
6. Ollama(本地 Llama 3 或 Mistral)
Ollama 在 localhost:11434 上暴露了一个简单的 REST API。使用 /api/generate 进行提示式生成或使用 /api/chat 进行聊天轮次。
import requests; print(requests.post("http://localhost:11434/api/generate", json={"model":"llama3","prompt":"What is vector search?"}).text)
作用: 向本地 Ollama 服务器发送一个生成请求,并打印原始响应文本。
原理: Ollama 运行一个本地 HTTP 服务器,带有 /api/generate 和 /api/chat 等端点。您必须首先运行应用程序并拉取模型。请参阅官方 API 文档。
7. LM Studio(兼容 OpenAI 的端点)
LM Studio 可以将本地模型置于类似 OpenAI 的端点(如 /v1/chat/completions)之后。从“开发者”选项卡启动服务器,然后像调用任何兼容 OpenAI 的后端一样调用它。
import requests; print(requests.post("http://localhost:1234/v1/chat/completions", json={"model":"phi-3","messages":[{"role":"user","content":"Explain embeddings"}]}).json()["choices"][0]["message"]["content"])
作用: 调用本地聊天补全并打印消息内容。
原理: LM Studio 暴露了兼容 OpenAI 的路由,并且还支持增强的 API。最新版本也增加了对 /v1/responses 的支持。如果您的本地构建使用不同的路由,请查看文档。
8. vLLM(自托管 LLM 服务器)
vLLM 提供了一个高性能服务器,具有兼容 OpenAI 的 API。您可以在本地或 GPU 服务器上运行它,然后调用 /v1/chat/completions。
import requests; print(requests.post("http://localhost:8000/v1/chat/completions", json={"model":"mistral","messages":[{"role":"user","content":"Give me three LLM optimization tricks"}]}).json()["choices"][0]["message"]["content"])
作用: 向 vLLM 服务器发送聊天请求并打印第一个响应消息。
原理: vLLM 实现了兼容 OpenAI 的聊天和补全 API,因此一旦服务器运行起来,任何类 OpenAI 的客户端或纯请求调用都可以正常工作。请查看 文档。
便捷技巧与窍门
了解向 LLM 发送请求的基础知识后,一些巧妙的技巧可以使您的工作流程更快、更顺畅。最后两个示例演示了如何实时流式传输响应以及如何执行异步 API 调用而不会阻塞您的程序。
9. 从 OpenAI 流式传输响应
流式传输允许您在模型生成每个 token 时立即打印它,而不是等待整个消息。它非常适合交互式应用程序或命令行工具,因为您希望输出即时出现。
from openai import OpenAI; [print(c.choices[0].delta.content or "", end="") for c in OpenAI().chat.completions.create(model="gpt-4o-mini", messages=[{"role":"user","content":"Stream a poem"}], stream=True)]
作用: 向 GPT-4o-mini 发送提示,并在 token 到来时打印它们,模拟“实时打字”效果。
原理: OpenAI API 中的 stream=True 标志会返回部分事件。每个 chunk 包含一个 delta.content 字段,此单行代码片段会在其流式传输时将其打印出来。
文档:OpenAI 流式传输指南。
10. 使用 httpx 进行异步调用
异步调用使您能够在不阻塞应用程序的情况下查询模型,非常适合同时发出多个请求或将 LLM 集成到 Web 服务器中。
import asyncio, httpx; print(asyncio.run(httpx.AsyncClient().post("https://api.mistral.ai/v1/chat/completions", headers={"Authorization":"Bearer TOKEN"}, json={"model":"mistral-tiny","messages":[{"role":"user","content":"Hello"}]})).json()["choices"][0]["message"]["content"])
作用: 异步向 Mistral 的 API 发送聊天请求,然后打印模型的回复。
原理: httpx 库支持异步 I/O,因此网络调用不会阻塞主线程。这种模式对于脚本或应用程序中的轻量级并发非常有用。
文档:异步支持。
总结
这些单行代码片段不仅仅是快速演示;它们是构建块。您可以将其中任何一个转换为函数,封装在命令行工具中,或构建到后端服务中。一旦您添加了错误处理、缓存或日志记录,原本只占一行的代码就可以轻松扩展到生产工作流程中。
如果您想进一步探索,请查阅官方文档,了解 temperature、max tokens 和 streaming options 等详细参数。每个提供商都维护着可靠的参考资料:
- OpenAI API 参考
- Anthropic API 文档
- Google Gemini 开发者文档
- Mistral API 参考
- Hugging Face 推理 API
- Ollama API 文档
- LM Studio API 参考
- vLLM REST API
真正的收获是 Python 使与 LLM 的工作变得既易于访问又灵活。无论您是在云端运行 GPT-4o 还是在本地运行 Llama 3,只需几行代码即可达到生产级的效果。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区