当前位置: 首页 > news >正文

ollama接口数据返回格式化数据,商品标题,商品详情

代码源:ollama_shop: 商贸ollama接口

一、根据关键字生成商品标题

结构体:

from pydantic import BaseModel, Field# 定义结构化输出格式(符合 Pydantic 的 Schema)
class ProductTitle(BaseModel):keyword: str = Field(..., description="用户提供的商品关键词")title: str = Field(..., min_length=20, max_length=30, description="生成的商品标题,不超过30字")

实现代码:

from ollama import Client
from config import OLLAMA_MODEL, OLLAMA_HOST
from domain.pd import ProductTitle  # 需包含 keyword 和 title 字段,title 限定 max_length=30def main():client = Client(host=OLLAMA_HOST)# 当前关键词keyword_input = "蓝牙耳机,运动,降噪"# 构造历史对话(系统角色+多轮问答)messages = [{"role": "system","content": ("你是一个电商文案生成专家,专门为淘宝、京东、拼多多生成30字以内的简洁商品标题。""所有回复都必须为严格的JSON格式,字段包括 keyword 和 title,title 不得超过30个字符。""不要输出任何解释或多余内容。")},# 历史对话1{"role": "user", "content": "关键词:无线鼠标,静音,轻薄,便携"},{"role": "assistant", "content": '{"keyword": "无线鼠标,静音,轻薄,便携", "title": "静音轻薄无线鼠标 便携办公"}'},# 历史对话2{"role": "user", "content": "关键词:笔记本支架,可调节,铝合金"},{"role": "assistant", "content": '{"keyword": "笔记本支架,可调节,铝合金", "title": "可调节铝合金笔记本支架"}'},# 当前对话{"role": "user","content": (f"关键词:{keyword_input}\n"f"请生成标题,格式如上,title 不超过30字。")}]# 发起请求response = client.chat(model=OLLAMA_MODEL,messages=messages,format=ProductTitle.model_json_schema(),options={"temperature": 0.2})# 验证并输出product = ProductTitle.model_validate_json(response.message.content)print("✅ 生成成功:", product)if __name__ == "__main__":main()

效果: 

这里使用的是 qwen3:0.6b,如果使用的是自己微调过的模型,效果更佳。

二、根据关键字生成商品详情

结构体:

class ProductMarkdown(BaseModel):keyword: strtitle: str = Field(..., min_length=20, max_length=30, description="简洁商品标题")description: str = Field(..., description="商品详情,Markdown 格式")

代码实现:

from ollama import AsyncClient, Clientfrom config import OLLAMA_HOST, OLLAMA_MODEL
from domain.pd import ProductMarkdown# ✅ Ollama Prompt 构造函数
def build_prompt(keyword: str) -> str:return f"""请根据以下关键词生成一个商品标题和商品详情。要求:- 返回 JSON 格式,字段包含 keyword、title、description;- title 不超过 30 个字符;- description 使用 Markdown 格式,换行使用两个空格 `  `,展示卖点,不超过 300 字;- 不需要解释说明,直接返回 JSON。关键词:{keyword}"""# ✅ 主函数
def main():keyword_input = "蓝牙耳机、运动、防水、降噪、长续航"prompt = build_prompt(keyword_input)client = Client(host=OLLAMA_HOST)# ✅ 设置历史对话消息messages = [{"role": "system","content": "你是一个专业电商文案生成助手,擅长用 Markdown 格式写出结构清晰的商品文案。",},{"role": "user","content": build_prompt("蓝牙耳机、轻盈、通话清晰、长续航"),},{"role": "assistant","content": """{"keyword": "蓝牙耳机、轻盈、通话清晰、长续航","title": "轻盈蓝牙耳机 清晰通话长续航","description": "### 产品亮点\\n\\n- **佩戴轻盈**:仅5g机身,长时间佩戴无压力。  \\n- **高清通话**:双麦克风降噪,语音清晰不延迟。  \\n- **长效续航**:单次10小时使用,配仓30小时。  \\n\\n> 通勤、运动两相宜,释放双耳不受“线”制。"
}""",},{"role": "user","content": prompt,}]# ✅ 发送请求response = client.chat(model= OLLAMA_MODEL,  # 替换成你的实际模型messages=messages,format=ProductMarkdown.model_json_schema(),options={"temperature": 0.2})try:product = ProductMarkdown.model_validate_json(response.message.content)print("✅ 商品信息生成成功:\n")print("【标题】", product.title)print("【关键词】", product.keyword)print("【Markdown详情】\n", product.description)except Exception as e:print("❌ 验证失败:", e)print("模型原始响应:", response.message.content)if __name__ == "__main__":main()

效果:

http://www.xdnf.cn/news/594181.html

相关文章:

  • 八、Linux进程和计划任务管理
  • 【Dify学习笔记】:dify通过ollama加载DeepSeek-R1-32B模型无法加载!终于解决了!!
  • C++ QT生成GIF,处理原始图像RGBA数据,窗口生成简单的动画
  • 练习小项目7:天气状态切换器
  • db_ha执行ha_isready报错authentication method 13 not supported
  • 同步/异步电路;同步/异步复位
  • 从法律视角看湖北理元理律师事务所的债务优化实践
  • Qt5、C++11 获取wifi列表与wifi连接
  • vue3商城类源码分享 期末作业 注册登录,状态管理,搜索,购物车订单页面
  • v3.0 YOLO篇-如何通过YOLO进行实验
  • Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么?
  • 比较连续型自变量和从连续型变量转换成了三分类变量的因变量的关系
  • Gitee PPM:智能化项目管理如何重塑软件工厂的未来格局
  • Scaled Dot-Product Attention 中的缩放操作
  • Spring Cloud生态与技术选型指南:如何构建高可用的微服务系统?
  • C语言:gcc 或 g++ 数组边界检查方法
  • 山东大学软件学院创新项目实训开发日志——第十二周
  • 2021~2025:特斯拉人形机器人Optimus发展进程详解
  • UV-python环境管理工具 入门教程
  • 时源芯微|电源、地线的处理
  • 技术篇-2.4.Python应用场景及开发工具安装
  • JMeter JDBC请求Query Type实测(金仓数据库版)
  • springboot3+vue3融合项目实战-大事件文章管理系统-本地存储及阿里云oss程序集成
  • 一文读懂Agent智能体,从概念到应用—Agent百科
  • GTM4.1-SPE
  • spring+tomcat 用户每次发请求,tomcat 站在线程的角度是如何处理用户请求的,spinrg的bean 是共享的吗
  • 练习写作对口语输出有显著的促进作用
  • Zephyr OS 中的互斥信号量
  • 高等数学-微分
  • SDWebImage源码学习