一聚教程网:一个值得你收藏的教程网站

热门教程

Python入门加调用LLM API:从List切片到商品文案生成

时间:2026-06-04 08:18:01 编辑:袖梨 来源:一聚教程网

Python List 切片与 LLM API 调用实战指南

前言

Python 作为数据科学和人工智能领域的主流语言,其简洁的语法和丰富的生态使其成为调用大模型 API 的首选工具。本文将从 Python 列表的基础操作出发,逐步深入到切片(Slice)的高级用法,最终完成一个调用 LLM API 生成 Amazon 商品文案的完整实战案例。

Python 入门 + 调用 LLM API:从 List 切片到商品文案生成


一、Python 列表(List)基础

1.1 列表的特性

Python 中没有像 Java 或 C++ 那样的固定长度数组,取而代之的是 List——一个灵活、有序、可动态修改的通用容器:

names = ["张三", "李四", "王五", "赵六", "刘七"]

列表的核心特性:

特性说明
动态长度无需预先指定容量,随时增删元素
类型不约束同一个列表可存储不同类型的数据
有序可修改支持索引访问和原地修改

1.2 基本操作示例

L = ["张三", "李四", "王五", "赵六", "刘七"]# 传统方式取前三个元素
r = []
for i in range(3):      # range(n) 生成 0 到 n-1 的整数序列
    r.append(L[i])
# 结果:['张三', '李四', '王五']

上述代码虽然可以运行,但较为繁琐。Python 提供了更简洁的解决方案——切片。


二、切片(Slice):Python 的高效元素截取

2.1 基本语法

切片是 Python 中用于截取序列(列表、字符串等)部分元素的语法,格式为:

sequence[start:stop:step]
参数说明
start起始索引(包含),省略则默认为 0
stop结束索引(不包含),省略则默认为序列长度
step步长,省略则默认为 1

2.2 常用示例

L = ["张三", "李四", "王五", "赵六", "刘七"]L[0:3]   # ['张三', '李四', '王五']  — 从索引 0 到 2
L[:3]    # ['张三', '李四', '王五']  — 省略 start,默认从 0 开始
L[1:3]   # ['李四', '王五']          — 从索引 1 到 2
L[-2:]   # ['赵六', '刘七']          — 负数索引,取最后两个

2.3 进阶用法

L = list(range(100))  # 生成 [0, 1, 2, ..., 99]L[:10]      # [0, 1, 2, ..., 9]       — 前 10 个元素
L[-10:]     # [90, 91, ..., 99]        — 最后 10 个元素
L[:10:2]    # [0, 2, 4, 6, 8]          — 前 10 个,步长为 2
L[::5]      # [0, 5, 10, ..., 95]      — 全部元素,步长为 5
L[::-1]     # [99, 98, ..., 1, 0]      — 反转序列

2.4 字符串切片

字符串作为序列类型,同样支持切片操作:

text = "ABCDEFG"text[:3]     # 'ABC'
text[::2]    # 'ACEG'
text[::-1]   # 'GFEDCBA'

2.5 实战:手写 trim 函数

利用切片和双指针思想,实现去除字符串首尾空格的功能:

def trim(s):
    # 左指针:找到第一个非空格字符
    left = 0
    while left < len(s) and s[left] == ' ':
        left += 1    # 右指针:找到最后一个非空格字符
    right = len(s)
    while right > left and s[right - 1] == ' ':
        right -= 1    # 切片截取中间部分
    return s[left:right]print(trim("   hello world   "))
# 输出:hello world

实现思路

  1. 左指针从左向右移动,跳过前导空格
  2. 右指针从右向左移动,跳过尾随空格
  3. 使用切片 s[left:right] 截取有效内容

三、调用大语言模型 API

3.1 LLM 接口生态概述

当前大语言模型 API 的生态格局:

厂商代表模型接口特点
OpenAIGPT 系列行业标准,Completion/Chat API
部分国内厂商各自主模型兼容 OpenAI 接口格式
AnthropicClaude自有接口规范
GoogleGemini自有接口规范

关键优势:由于 OpenAI 的接口已成为事实标准,许多厂商选择兼容该格式,开发者只需学习一套调用方式即可切换不同模型。

3.2 环境准备

安装 OpenAI 官方 Python SDK:

pip install openai

3.3 客户端初始化

from openai import OpenAIclient = OpenAI(
    api_key="your-api-key",              # API 密钥
    base_url="https://your-endpoint/v1"  # API 服务端点
)COMPLETION_MODEL = "your-model-name"

3.4 Prompt 设计原则

高质量的 Prompt 应遵循以下原则:

原则说明示例
目标清晰明确表达任务目标"Compose product title within 20 words"
分步描述将复杂任务拆分为步骤使用 1/2/3 编号
格式约束指定输出格式便于解析"Output in JSON format"

3.5 完整实战:商品文案生成

以下示例演示如何调用 LLM API 为中文商品生成英文 Amazon 文案:

prompt = """
Consideration product:
工厂现货PVC充气青蛙夜市地摊热卖充气玩具发光蛙儿童水上玩具1. Compose human readable product title used on
Amazon in english within 20 words.
2. Write 5 selling points for the products in Amazon.
3. Evaluate a price range for this product in U.S.Output the result in json format with
three properties called title, selling_points and
price_range
"""def get_response(prompt):
    response = client.chat.completions.create(
        model=COMPLETION_MODEL,
        messages=[
            {"role": "user", "content": prompt}
        ]
    )
    return response.choices[0].message.contentprint(get_response(prompt))

3.6 输出结果

{
  "title": "Inflatable PVC Frog Toy with LED Light for Kids Night Market Water Fun",
  "selling_points": [
    "Bright LED lights make the frog glow for exciting night play.",
    "Made from durable PVC material, perfect for water and pool fun.",
    "Lightweight and easy to inflate, deflate, and carry.",
    "Attracts attention at markets and events, ideal for resale.",
    "Safe and fun for children ages 3+, great for outdoor activities."
  ],
  "price_range": "$8.99 - $14.99"
}

四、Jupyter Notebook:交互式开发环境

4.1 核心特性

Jupyter Notebook(.ipynb)是一种广泛使用的交互式开发环境:

  • 代码单元(Cell):独立运行代码片段
  • 文本单元(Markdown Cell):记录笔记和文档
  • 即时输出:运行结果直接显示在代码下方
  • 适合场景:数据分析、机器学习实验、学习记录

4.2 与传统开发方式的对比

传统 .py 文件开发流程:
编写完整代码 → 运行脚本 → 查看结果 → 调试修改Notebook 开发流程:
编写代码片段 → 即时运行 → 查看结果 → 记录笔记 → 继续编写

Notebook 的即时反馈机制显著提升了学习和实验效率。


五、Python 与 JavaScript 对比速查

对于前端开发者,以下对比有助于快速理解 Python 语法:

操作JavaScriptPython
创建列表[1, 2, 3][1, 2, 3]
取前 N 个arr.slice(0, n)lst[:n]
取后 N 个arr.slice(-n)lst[-n:]
每隔 N 个取arr.filter((_, i) => i % N === 0)lst[::N]
反转序列arr.reverse()lst[::-1]
去除空格str.trim()str.strip()
字符串长度str.lengthlen(str)
模板字符串`${name}`f"{name}"
对象实例化new Client()Client()

六、总结

本文系统介绍了以下内容:

  1. Python List:动态、灵活的通用容器
  2. Slice 切片[start:stop:step] 语法,高效截取序列元素
  3. LLM API 调用:通过 OpenAI 兼容接口调用大语言模型
  4. Prompt 工程:目标清晰、分步描述、格式约束
  5. Jupyter Notebook:交互式开发环境,适合学习与实验

掌握这些基础后,可以进一步探索更复杂的 LLM 应用场景,如多轮对话、函数调用(Function Calling)、流式输出等高级特性。


标签Python LLM API Slice Prompt Engineering

热门栏目