公司动态
GPT-5.6 Luna降价80%:低成本AI应用开发实战与成本优化指南
如果你正在开发AI应用或者只是单纯想用大模型API做点有趣的东西最近可能被一个消息刷屏了OpenAI把GPT-5.6 Luna的价格直接砍了80%最便宜的模型输入token价格降到了每百万0.20美元。这听起来像是一次普通的商业降价但如果你仔细算一笔账会发现事情远不止“便宜了”这么简单。过去调用GPT-4级别的API成本是许多个人开发者和中小团队难以承受的门槛。一个简单的对话应用月成本轻松破百美元更别提那些需要处理大量文本的复杂场景。这次降价尤其是GPT-5.6 Luna这个新模型的登场更像是一次精准的“技术普惠”行动。它传递的信号是高性能AI推理的成本正在快速向“水电煤”看齐而不再是少数人的奢侈品。但问题也随之而来GPT-5.6 Luna到底是什么它和之前的GPT-4、GPT-4o有什么区别价格降了80%性能会不会也跟着“打折”对于开发者来说现在是不是把所有项目都迁移到Luna上的最佳时机更重要的是这次降价背后OpenAI的模型策略和整个AI API市场的竞争格局正在发生哪些根本性的变化这篇文章不会只复述新闻。我们将深入拆解GPT-5.6 Luna的技术定位、价格策略的深层影响并通过一个完整的、从零开始的Python项目实战带你体验如何以极低的成本将最新的强大模型集成到你的应用中。你会看到成本降低带来的不仅是省钱更是产品想象力边界的拓宽。1. 这次降价真正改变的是什么首先我们必须跳出“又降价了”这个表层认知。OpenAI此次调整的核心是引入了一个全新的、更具性价比的模型层级——GPT-5.6 Luna并对现有模型价格进行了大幅下调。这不仅仅是商业竞争更是一次清晰的产品线重塑。对开发者最直接的影响是成本结构的颠覆。我们来看一组对比数据旧世界以GPT-4 Turbo为例输入token价格约为每百万10美元输出token价格约为每百万30美元。开发一个每天处理一万次用户查询平均每次500输入token200输出token的中型应用仅API调用费用每月就高达数千美元。新世界GPT-5.6 Luna输入token价格降至每百万0.20美元输出token价格为每百万0.80美元。同样的应用月度API成本直接降至百美元级别降幅超过90%。这种量级的成本下降意味着许多此前因成本问题而停留在原型阶段或只能小范围试用的AI应用现在具备了大规模推广和商业化的可能性。例如内容批量处理自动生成产品描述、社交媒体帖子、邮件草稿。代码辅助与审查为整个开发团队提供实时、低成本的代码建议。数据分析与洞察自动解析长篇幅的报表、用户反馈提取关键信息。教育类应用为每个学生提供个性化的学习内容生成和答疑而无需担心高昂的token消耗。但成本只是故事的一半。GPT-5.6 Luna的定位非常值得玩味。它并非GPT-4的替代品也不是一个“阉割版”。从官方描述和早期测试来看Luna在通用语言理解、代码生成和逻辑推理任务上保持了极高的水准但在某些需要极致创意或复杂多轮对话的细分场景上可能略逊于顶级的GPT-4系列。OpenAI的策略很明确用Luna覆盖80%的高性价比需求用GPT-4系列满足20%的顶尖性能需求形成一个清晰的产品矩阵。因此这次降价真正的改变在于它降低了AI能力集成的门槛并迫使开发者更理性地思考模型选型。不再是“哪个最好就用哪个”而是“哪个最合适就用哪个”。这标志着AI工具化进入了一个更成熟、更务实的阶段。2. 核心概念梳理模型、Token与API在深入实操之前有必要厘清几个关键概念避免后续产生混淆。2.1 模型家族GPT-4, GPT-4o, GPT-5.6 LunaGPT-4OpenAI的上一代旗舰模型以强大的推理能力和广泛的知识面著称但成本和延迟相对较高。GPT-4o“o”代表omni强调多模态理解文本、图像、音频和更低延迟的模型在需要快速交互和跨模态处理的场景中表现出色。GPT-5.6 Luna本次降价的主角。一个在成本与性能之间取得新平衡的模型。它基于更新的架构和训练数据旨在以极低的成本提供接近GPT-4水平的通用能力。它是OpenAI“性价比”赛道的主力军。简单类比如果把AI模型比作汽车GPT-4像是豪华轿车性能顶级费用高GPT-4o像是高性能SUV全能适应多种路况而GPT-5.6 Luna则像是经济型家用车油耗极低满足日常绝大部分需求性价比之王。2.2 理解TokenAI世界的“计价单位”Token是大型语言模型处理文本的基本单位。它不是简单的“单词”或“汉字”。英文中一个token大约等于0.75个单词。“Hello, world!”可能被拆分为[“Hello”, “,”, “ world”, “!”]4个token。中文中由于汉字密集一个汉字通常对应1-2个token。“你好世界”可能被拆分为[“你”, “好” “” “世” “界” “”]6个token。价格计算API费用 (输入token数量 * 输入单价) (输出token数量 * 输出单价)。Luna模型输入$0.20/百万token输出$0.80/百万token意味着生成1000个汉字约2000 token的成本仅需几美分。2.3 OpenAI API统一的接入方式无论调用GPT-4、GPT-4o还是GPT-5.6 Luna开发者都使用同一套OpenAI API接口。这极大地简化了集成工作。你只需要在代码中指定想要调用的model参数例如gpt-5.6-luna并传入你的API Key即可。这种设计让模型切换变得异常简单为今天的成本优化实践打下了基础。3. 环境准备开始使用GPT-5.6 Luna在代码中调用Luna模型前你需要完成以下准备。3.1 获取OpenAI API Key访问 OpenAI平台官网 并登录注册流程此处不赘述注意遵守相关法律法规和使用条款。点击右上角个人头像选择“View API keys”。点击“Create new secret key”为你的项目创建一个新的API Key并妥善保存。注意Key只显示一次丢失需重新创建。3.2 Python开发环境配置本文以Python为例因为它是在AI领域最流行的语言之一且有完善的OpenAI官方库支持。安装Python确保你的系统已安装Python 3.7或更高版本。在终端输入python --version或python3 --version检查。创建虚拟环境推荐这能隔离项目依赖避免版本冲突。# 在项目目录下 python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # macOS/Linux: source venv/bin/activate安装OpenAI Python SDKpip install openai同时我们也会用到python-dotenv来安全地管理API Key。pip install python-dotenv3.3 安全存储API Key永远不要将API Key硬编码在代码中或上传到GitHub等公开仓库。最佳实践是使用环境变量。在项目根目录创建一个名为.env的文件。在.env文件中写入你的API KeyOPENAI_API_KEYsk-your-actual-api-key-here确保.env文件被添加到.gitignore中避免意外提交。4. 第一个调用与GPT-5.6 Luna对话让我们从一个最简单的脚本开始验证环境并体验Luna模型的基本对话能力。创建一个名为first_call.py的文件# first_call.py import os from openai import OpenAI from dotenv import load_dotenv # 1. 加载环境变量中的API Key load_dotenv() api_key os.getenv(OPENAI_API_KEY) if not api_key: print(错误未找到OPENAI_API_KEY环境变量。请检查.env文件。) exit(1) # 2. 初始化OpenAI客户端 client OpenAI(api_keyapi_key) # 3. 定义请求参数 model_name gpt-5.6-luna # 指定使用Luna模型 messages [ {role: system, content: 你是一个乐于助人的AI助手。}, {role: user, content: 用一句话介绍GPT-5.6 Luna模型的特点。} ] try: # 4. 发起API调用 response client.chat.completions.create( modelmodel_name, messagesmessages, max_tokens150, # 限制生成文本的最大长度 temperature0.7, # 控制输出的随机性0-1越高越有创意 ) # 5. 处理并打印响应 answer response.choices[0].message.content usage response.usage print(Luna的回答) print(answer) print(\n--- 本次调用消耗 ---) print(f输入token: {usage.prompt_tokens}) print(f输出token: {usage.completion_tokens}) print(f总token: {usage.total_tokens}) # 计算成本按Luna价格估算 input_cost (usage.prompt_tokens / 1_000_000) * 0.20 output_cost (usage.completion_tokens / 1_000_000) * 0.80 total_cost_est input_cost output_cost print(f估算成本: ${total_cost_est:.6f}) except Exception as e: print(f调用API时发生错误: {e})代码关键点解释load_dotenv(): 自动从.env文件加载环境变量。OpenAI(api_keyapi_key): 使用官方推荐的SDK初始化方式。model“gpt-5.6-luna”:这是调用Luna模型的核心。确保模型名称拼写正确。messages: 对话历史列表。system角色设定助手行为user角色是用户输入。max_tokens: 控制生成文本的长度防止生成过长内容消耗不必要的token。temperature: 创造性参数。对于需要确定答案的任务如代码生成可以调低如0.2对于创意写作可以调高。response.usage: 返回本次调用的token消耗详情是成本监控和优化的关键数据。运行脚本在终端中确保处于虚拟环境下运行python first_call.py如果一切正常你将看到Luna模型的回复以及本次调用消耗的token数量和估算成本。第一次看到成本可能只有零点几美分这就是降价带来的直观感受。5. 实战项目构建一个低成本智能邮件助手现在我们用一个更实际的例子来展示如何利用Luna的低成本优势。我们将构建一个命令行邮件助手它可以根据用户提供的简单要点自动生成一封结构完整、语气得体的商务邮件。项目结构如下email_assistant/ ├── .env # 存储API Key ├── .gitignore # 忽略.env等文件 ├── requirements.txt # 项目依赖 ├── config.py # 配置管理 ├── email_generator.py # 核心邮件生成逻辑 └── main.py # 主程序入口5.1 项目配置与工具函数首先创建config.py来集中管理配置# config.py import os from dotenv import load_dotenv load_dotenv() class Config: 项目配置类 OPENAI_API_KEY os.getenv(OPENAI_API_KEY) MODEL_NAME gpt-5.6-luna # 统一使用Luna模型 MAX_TOKENS 500 # 邮件生成的最大token数 TEMPERATURE 0.7 # 创造性温度 classmethod def validate(cls): 验证必要配置是否存在 if not cls.OPENAI_API_KEY: raise ValueError(OPENAI_API_KEY 未在环境变量中设置。请检查 .env 文件。) print(f配置加载成功使用模型: {cls.MODEL_NAME}) # 初始化时验证配置 Config.validate()创建email_generator.py包含核心的生成逻辑和成本计算# email_generator.py import json from openai import OpenAI from config import Config class EmailGenerator: 基于GPT-5.6 Luna的邮件生成器 def __init__(self): self.client OpenAI(api_keyConfig.OPENAI_API_KEY) self.model Config.MODEL_NAME def generate_email(self, key_points, toneprofessional, recipient客户, sender我): 根据关键点生成邮件正文。 参数: key_points (list): 邮件需要包含的关键点列表如 [项目延期, 新的交付日期是下周五, 表示歉意] tone (str): 邮件语气可选 professional(专业), friendly(友好), formal(正式) recipient (str): 收件人 sender (str): 发件人 返回: dict: 包含生成的邮件正文、token使用情况和估算成本 # 构建系统提示词精确控制生成风格和格式 system_prompt f你是一位专业的商务邮件撰写助手。请根据用户提供的关键点撰写一封{tone}的电子邮件。 收件人是{recipient}发件人是{sender}。 邮件必须包含得体的称呼、清晰的主体段落涵盖所有关键点、礼貌的结尾和署名。 直接输出邮件正文不要添加任何额外的解释或标记。 user_prompt f请根据以下关键点撰写邮件{, .join(key_points)} messages [ {role: system, content: system_prompt}, {role: user, content: user_prompt} ] try: response self.client.chat.completions.create( modelself.model, messagesmessages, max_tokensConfig.MAX_TOKENS, temperatureConfig.TEMPERATURE, ) # 解析响应 email_content response.choices[0].message.content.strip() usage response.usage # 成本计算 (基于Luna公开价格) input_cost (usage.prompt_tokens / 1_000_000) * 0.20 # $0.20 per million input tokens output_cost (usage.completion_tokens / 1_000_000) * 0.80 # $0.80 per million output tokens total_cost input_cost output_cost result { success: True, email_content: email_content, usage: { prompt_tokens: usage.prompt_tokens, completion_tokens: usage.completion_tokens, total_tokens: usage.total_tokens, }, estimated_cost_usd: total_cost } return result except Exception as e: return { success: False, error: str(e), email_content: None, usage: None, estimated_cost_usd: 0 } def estimate_cost(self, key_points_text): 一个简单的成本估算函数基于输入文本长度粗略估算 # 注意这只是非常粗略的估算实际输出长度不确定。 # 更准确的估算需要调用API并设置max_tokens限制。 input_tokens_est len(key_points_text) * 1.5 # 粗略估算中英文混合平均1.5 token/字符 output_tokens_est 200 # 假设生成200个token的邮件 est_cost (input_tokens_est/1_000_000*0.20) (output_tokens_est/1_000_000*0.80) return est_cost5.2 主程序与交互逻辑创建main.py作为用户交互的入口# main.py from email_generator import EmailGenerator import json def display_result(result): 美观地显示生成结果和成本信息 if not result[success]: print(f生成失败: {result[error]}) return print(\n *50) print(生成的邮件正文) print(*50) print(result[email_content]) print(*50) usage result[usage] cost result[estimated_cost_usd] print(f\n 消耗统计:) print(f 输入Token: {usage[prompt_tokens]}) print(f 输出Token: {usage[completion_tokens]}) print(f 总Token: {usage[total_tokens]}) print(f 估算成本: ${cost:.6f} (约人民币 {cost*7.2:.4f} 元)) print(*50 \n) def main(): print(欢迎使用低成本智能邮件助手 (基于GPT-5.6 Luna)) print(提示请依次输入邮件关键点输入空行结束。) key_points [] while True: point input(f关键点 {len(key_points)1} (直接回车结束): ).strip() if point : if len(key_points) 0: print(至少需要输入一个关键点。) continue break key_points.append(point) print(\n请选择邮件语气) print(1. 专业 (professional)) print(2. 友好 (friendly)) print(3. 正式 (formal)) tone_choice input(请输入编号 (默认1): ).strip() tone_map {1: professional, 2: friendly, 3: formal} tone tone_map.get(tone_choice, professional) recipient input(收件人 (例如: 张经理) [默认: 客户]: ).strip() or 客户 sender input(发件人 (例如: 小李) [默认: 我]: ).strip() or 我 print(\n正在生成邮件请稍候...) # 初始化生成器并生成邮件 generator EmailGenerator() result generator.generate_email(key_points, tone, recipient, sender) # 显示结果 display_result(result) # 询问是否保存 save input(是否将邮件内容保存到文件(y/N): ).strip().lower() if save y: filename input(请输入文件名 (例如: email_draft.txt): ).strip() or email_draft.txt try: with open(filename, w, encodingutf-8) as f: f.write(result[email_content]) print(f邮件已保存至 {filename}) except Exception as e: print(f保存文件时出错: {e}) if __name__ __main__: main()5.3 运行与效果验证安装依赖在项目根目录创建requirements.txt并写入openai1.0.0 python-dotenv1.0.0然后运行pip install -r requirements.txt运行程序python main.py跟随提示交互欢迎使用低成本智能邮件助手 (基于GPT-5.6 Luna) 提示请依次输入邮件关键点输入空行结束。 关键点 1 (直接回车结束): 项目因测试发现关键bug需要延期 关键点 2 (直接回车结束): 新的交付日期预计在下周五 关键点 3 (直接回车结束): 对延期表示诚挚歉意 关键点 4 (直接回车结束): 附上最新的测试报告摘要 关键点 5 (直接回车结束): # 这里直接回车 请选择邮件语气 1. 专业 (professional) 2. 友好 (friendly) 3. 正式 (formal) 请输入编号 (默认1): 1 收件人 (例如: 张经理) [默认: 客户]: 王总监 发件人 (例如: 小李) [默认: 我]: 开发团队 小李 正在生成邮件请稍候...查看结果程序将输出生成的邮件并显示类似以下的消耗统计 生成的邮件正文 尊敬的张总监 您好 特此致函向您汇报关于XX项目的最新情况。在近期进行的系统测试中我们发现了一个关键性的Bug该问题直接影响核心功能模块的稳定性。为确保交付质量避免潜在风险团队经过审慎评估认为需要对修复方案进行充分验证因此项目交付时间需要进行调整。 目前我们已定位到问题根源并正在全力修复。根据当前进度**新的预计交付日期为下周五X月X日**。对于此次延期给您和贵方带来的不便我们深表歉意。我们非常理解项目按时交付的重要性并将采取一切必要措施在保证质量的前提下尽快完成。 随本邮件附上最新的测试报告摘要其中包含了已发现问题的详细描述及当前处理状态供您查阅。 再次为此次调整致以诚挚的歉意。我们将持续同步项目进展如有任何疑问请随时与我联系。 顺祝商祺 开发团队 小李 消耗统计: 输入Token: 145 输出Token: 312 总Token: 457 估算成本: $0.0002696 (约人民币 0.0019 元) 项目价值总结成本极低生成一封结构复杂的商务邮件成本不到千分之一美元。这意味着你可以毫无压力地批量处理成百上千封邮件的草拟工作。质量可靠通过精心设计的系统提示词system_prompt我们能稳定控制邮件的语气、格式和内容完整性。易于集成这个EmailGenerator类可以轻松被集成到Web应用、自动化脚本或CRM系统中。6. 进阶技巧提示词工程与成本优化使用低成本模型并不意味着可以随意调用。合理的提示词设计和调用策略能让你在保证效果的同时进一步压榨成本。6.1 为Luna模型优化提示词Luna作为高性价比模型在遵循复杂指令和进行极度发散思考上可能不如顶级模型。因此提示词需要更清晰、具体、结构化。低效提示词示例“写一份项目报告。”高效提示词示例适用于Lunasystem_prompt 你是一位资深项目经理。请严格按照以下结构和要求撰写项目周报 1. 标题格式为“[项目名称] 第X周周报 (YYYY-MM-DD)” 2. 本周摘要用3-5句话总结本周整体进展。 3. 已完成工作以项目符号列表形式列出每条包含工作内容、负责人、状态已完成。 4. 进行中工作同上状态标注为进行中并说明当前卡点如有。 5. 下周计划列出主要计划事项。 6. 风险与问题如实列出无则写“无”。 请确保语言简洁、专业直接输出报告正文。关键点明确角色、规定结构、指定格式、限定输出范围。这能减少模型的“困惑”使其输出更精准避免生成无关内容浪费token。6.2 利用max_tokens和stop序列控制输出无限制的生成长文本是成本失控的主要原因。max_tokens务必根据场景设置合理的上限。对于邮件500可能足够对于报告可以设为1000或1500。stop序列可以设置当模型生成特定字符串时停止这对于生成列表、JSON或特定格式内容非常有用。response client.chat.completions.create( modelConfig.MODEL_NAME, messagesmessages, max_tokens1000, temperature0.2, stop[### 结束 ###, \n\n\n] # 遇到这些序列则停止生成 )6.3 实现流式响应Streaming以提升体验对于需要长时间生成或交互式应用流式响应可以边生成边返回提升用户体验。虽然不直接节省总token但能感知响应速度。# streaming_example.py from openai import OpenAI from config import Config client OpenAI(api_keyConfig.OPENAI_API_KEY) stream client.chat.completions.create( modelConfig.MODEL_NAME, messages[{role: user, content: 用中文简述人工智能的发展历史。}], streamTrue, max_tokens300 ) print(正在生成回答, end, flushTrue) for chunk in stream: if chunk.choices[0].delta.content is not None: print(chunk.choices[0].delta.content, end, flushTrue) print() # 换行7. 常见问题与排查思路在实际集成和使用GPT-5.6 Luna API时你可能会遇到以下问题。问题现象可能原因排查方式解决方案错误InvalidRequestError: The modelgpt-5.6-luna does not exist1. 模型名称拼写错误。2. 该模型尚未对你的API账户开放。1. 检查代码中model参数字符串。2. 访问OpenAI平台在Playground或模型列表中查看可用模型。1. 更正为gpt-5.6-luna。2. 等待模型逐步开放或检查账户权限。错误AuthenticationError: Invalid API key1. API Key错误或已失效。2. 环境变量未正确加载。1. 在OpenAI平台重新生成Key。2. 打印os.getenv(OPENAI_API_KEY)前几位检查是否正确。1. 使用新的API Key更新.env文件。2. 确保代码在加载dotenv后读取Key。错误RateLimitError1. 免费账户或旧账户有每分钟/每天的请求次数限制。2. 短时间内发送了大量请求。查看错误信息中的retry-after提示。1. 升级为付费账户以提高限额。2. 在代码中实现请求间隔如time.sleep或使用指数退避重试。生成内容不符合预期1. 提示词prompt不够清晰。2.temperature参数设置过高导致输出随机性大。1. 在OpenAI Playground中调试提示词。2. 检查temperature值对于确定性任务应调低如0.2。1. 优化系统提示词给出更具体的指令和示例。2. 将temperature调低并考虑使用top_p参数。成本高于预期1. 输入文本过长。2. 未设置max_tokens导致生成长文本。3. 频繁调用未做缓存。1. 分析response.usage看是输入还是输出token过高。2. 检查代码中是否设置了合理的max_tokens。1. 对长输入进行摘要或分块处理。2.务必设置max_tokens。3. 对相同或相似的请求结果进行缓存。响应速度慢1. 网络问题。2. 模型本身在高峰期可能有延迟。1. 测试网络连接。2. 检查OpenAI系统状态页面。1. 使用流式响应改善用户体验。2. 考虑在客户端添加加载状态。8. 最佳实践与工程化建议将Luna这样的低成本模型用于生产环境需要一些工程化考量。8.1 成本监控与告警绝不能因为单价低就忽视成本监控。记录日志每次调用都记录prompt_tokens,completion_tokens,total_tokens和估算成本到你的应用日志或数据库中。设置预算告警在应用层面或使用云服务商的预算告警功能设置每日/每周的API成本阈值超出时发送邮件或短信通知。按用户/项目细分成本如果你的服务面向多用户或多项目记录每次调用的关联ID以便进行成本分摊和分析。8.2 实现请求重试与降级策略网络和服务并不总是100%可靠。重试机制对于可重试的错误如网络超时、速率限制实现带有指数退避的重试逻辑。import time from tenacity import retry, stop_after_attempt, wait_exponential retry(stopstop_after_attempt(3), waitwait_exponential(multiplier1, min4, max10)) def robust_api_call(client, messages): # 你的API调用代码 return client.chat.completions.create(modelConfig.MODEL_NAME, messagesmessages)降级策略如果Luna模型不可用或响应过慢是否有备选方案例如可以准备一个更轻量级的本地模型如ChatGLM、Qwen作为备份或者暂时关闭非核心的AI功能。8.3 缓存策略对于内容生成类应用很多用户请求是相似甚至重复的例如生成相同产品的描述。实现缓存可以大幅减少API调用和成本。内存缓存对于单机应用可以使用functools.lru_cache或cachetools。分布式缓存对于多实例服务使用Redis或Memcached。缓存键可以是提示词prompt的哈希值。8.4 安全与合规内容审核虽然Luna已内置安全机制但在面向公众的应用中仍建议对模型的输入和输出添加一层内容过滤防止生成不当内容。数据隐私避免向API发送用户个人身份信息PII、密码、密钥等敏感数据。考虑在发送前对数据进行脱敏处理。遵守条款仔细阅读OpenAI的使用政策确保你的使用场景符合规定。9. 总结在“廉价推理”时代构建你的AI应用GPT-5.6 Luna价格下调80%不是一个孤立事件它是一个强烈的信号高质量AI推理正在变得极其廉价和易得。这对于开发者社区来说是一个巨大的红利期。通过本文的实践你应该已经感受到集成一个顶级AI模型的能力到你的应用中技术门槛和成本门槛都已降至历史低点。你现在可以思考的不再是“能不能用”而是“怎么用好”。下一步可以做什么深化提示词工程探索如何通过更精巧的提示词让Luna在特定领域如法律、医疗、金融文本分析发挥出接近专家的水平。构建复杂AI工作流将Luna作为其中一个环节结合其他工具如爬虫、数据库、其他专用模型构建自动化的内容生产、数据分析流水线。进行A/B测试在非关键业务场景中用Luna逐步替换原有的GPT-4调用严密对比效果和成本找到最佳的性价比平衡点。关注模型演进OpenAI的模型迭代很快。保持对gpt-5.6-luna后续版本以及其他新性价比模型的关注随时准备升级你的技术栈。技术的价值在于应用。现在基础设施的成本壁垒已被大幅削弱创意和执行力将成为更关键的区别因素。利用好像GPT-5.6 Luna这样的工具去构建那些你一直想做但曾因成本而却步的应用吧。