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

大模型应用开发教程

目录

一、什么是AI大模型开发

二、Gradio快速入门

三、什么是提示词?


一、什么是AI大模型开发

二、Gradio快速入门

Gradio 是一个用于快速构建机器学习模型 Web 界面的 Python 库,核心优势是‌仅需几行代码即可将函数转化为可交互的 UI‌。以下是从安装到进阶的核心教程。‌‌

官方网站:https://www.gradio.app/

官方文档 - 快速开始:https://www.gradio.app/guides/quickstart

1、安装

pip install gradio

出现这个报错,先更新pip

先去到这个目录:D:\Program Files\Python312\

然后输入下面这个命令

python.exe -m pip install --upgrade pip

在PyCharm新建一个项目,新建一个llm-exercise1项目

新建一个part.py,代码如下:

案例1一个接收文本输入并返回该文本倒序输出的应用。 import gradio as gr #功能实现5 def reverse_text(text): return text[::-1] #界面配置 demo = gr.Interface( fn=reverse_text,# 调用reverse_text函数 inputs="text", #输入组件类型为文本 outputs="text") #输出组件类型为文本 #启动应用 demo.launch()

在软件PyCharm的终端安装gradio,因为虚拟环境没有gradio

在终端输入 install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple

判断是否安装

pip show gradio

运行 part1.py

在浏览器输入http://127.0.0.1:7860

输入内容

2、 把 PyCharm 解释器切换成全局 Python

把 PyCharm 解释器切换成全局 Python,不用 venv:

  1. Ctrl+Alt+S→ Project:xxx → Python Interpreter
  2. 顶部下拉,选择不带venv路径的 python.exe
  3. 应用保存,直接复用 CMD 全局已安装的 cv2、gradio

3、生成图片的素描的demo

先安装 pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

pip show opencv-python

创建part2.py

import gradio as gr import numpy as np import cv2 def image_to_sketch(image): gray_image = image.convert('L') inverted_image = 255 - np.array(gray_image) blurred = cv2.GaussianBlur(inverted_image, (21, 21), 0) inverted_blurred = 255 - blurred pencil_sketch = cv2.divide(np.array(gray_image), inverted_blurred, scale = 256.0) return pencil_sketch demo = gr.Interface( fn=image_to_sketch, inputs=[gr.Image(label="上传图片", type="pil")], outputs=[gr.Image(label="铅笔画")], title="图像转铅笔画", description="将上传的图片转为铅笔画。" ) #启动应用 demo.launch()

安装openai

pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple

pip show openai

4、python调用千问大模型

先配置window的环境变量

配置环境变量后,要重启Pycharm软件

创建python3.py,内容如下:

#导入必要的库 import gradio as gr import os from openai import OpenAI #从系统环境变量中获取DashScope API密钥 # 确保在运行此脚本前已设置DASHSCOPE_API_KEY环境变量 api_key = os.getenv("DASHSCOPE_API_KEY") print("读取到的密钥:", api_key) #如果未设置API密钥,提供友好的错误提示 if not api_key: print("错误:API密钥未设置。请确保在调用API之前正确设置API密钥。") # 定义一个函数,用于调用通义千问max模型生成回复 def call_qwen(message, history): #调用通义千问max模型的函数 #message(str): 用户当前输入的消息内容 #history(list): 聊天历史记录,支持两种格式: #格式1: [(用户消息,助手回复), ...] - 元组列表形式 #格式2: [{"role": "user" “content":" 消息内容 "},...]-字典列表形式 if not api_key: return "未设置DASHSCOPE_API_KEY环境变量" client = OpenAI( api_key=api_key, # 使用环境变量中的API密钥进行身份验证 base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" # DashScope兼容模式端点 ) messages = [] if history: try: #尝试处理字典格式的history(较新版本Gradio的格式) for msg in history: if isinstance(msg, dict) and 'role' in msg and 'content' in msg: messages.append(msg) elif isinstance(msg, (list, tuple)) and len(msg) == 2: user_msg, assistant_msg = msg messages.append({"role": "user", "content": user_msg}) messages.append({"role": "assistant", "content": assistant_msg}) except Exception as e: print(f"处理历史记录时出错:{e}") messages.append({"role":"user","content":message}) try: response = client.chat.completions.create( model="qwen-max", messages=messages, stream=False ) return response.choices[0].message.content except Exception as e: return "Error: " + str(e) demo=gr.ChatInterface( fn=call_qwen, title="通义千问-max", description = "基于通义千问max的聊天机器人", examples=[ #指定处理聊天消息的回调函数,将调用通 ["你好"], ["你叫什么名字?"], ["给我讲一个笑话呗"] ] ) #主程序入口点 #当直接运行此脚本时,启动GradioWeb服务器 if __name__ == "__main__": # 启动Gradio服务,默认监听本地7860端口 # 用户访问该URL即可与通义千问Turbo模型进行交互 demo.launch(theme=gr.themes.Soft())

启动项目:

三、什么是提示词?

提示词:提示工程(Prompt Engineering)是一项通过优化提示词(Prompt)和生成策略,从而获得更好的模型返回结果的工程技术。

好的Prompt需要不断调优。
说清楚自己到底想要什么,要具体!
不要让机器去猜测太多。为了不让机器去猜测,我们就需要告诉细节。
提示工程有一些技巧,灵活掌握,事半功倍。

提示词构成

指示(Instruction):描述要让它做什么?
上下文(Context):给出与任务相关的背景信息
例子(Examples):给出一些例子,让模型知道怎么回复
输入(Input):任务的输入信息
输出(OutputFormat):输出的格式,想要什么形式的输出?

http://www.jsqmd.com/news/1069577/

相关文章:

  • WezTerm终端模拟器:技术原理与配置优化实践
  • 【YOLO 训练专用】安防数据集
  • 不会 MCP?用 Spring AI 一步搞定 Server 实现
  • Windows 10 局域网跨电脑共享文件 - 图文版
  • 蓝绿部署数据库迁移总“打架”?Spring Boot 兼容性破局之道
  • 智能酒店物联网架构:基于GPIO状态机的免停梯非侵入式机器人梯控设计
  • 计算机毕业设计之采购管理系统设计与实现
  • Dropbox自动化_dropbox-automation
  • AI给出的代码怎么生成图片?别再手动截,「AI导出鸭」一键格式出图
  • 计算机毕业设计之基于大数据的城市环境质量的分析与预测系统
  • 【大模型知识】多智能体协同架构-概述
  • 药物流产最佳时间
  • MyBatis 字符串比较语法问题
  • [机器学习]搜索碰撞点以及反向微调退避(0619)
  • Linux 自动化运维基础 —— 定时任务与日志轮转
  • 企业组网供应商排行前三
  • 【小白也能轻松用】OpenClaw v2.7.9 首次启动优化设置,小白部署后快速使用(含最新安装包)
  • cantp时间参数
  • 手把手教你学Simulink——充电桩模块并联运行的均流控制与热插拔仿真
  • 我的一次Gin Context误用排查:为什么必须用c.Copy()?
  • CC攻击python超绝代码
  • LLM之Agent(五十四)|Claude Code Plugins指南 —— 把超级英雄集结成复仇者联盟
  • 排产引擎跑得很准,经营目标却总差一截——上海斯歌 APS 中 SOP 模块的技术债怎么还?
  • HarmonyOS 6学习:DevEco Testing故障截图与录屏导出全流程实战
  • 【PCB】——嘉立创EDA快速入门
  • RAG索引生成优化篇(上):Multi-representation Indexing(多表征索引)
  • 数学建模备赛
  • C语言学习笔记20260615-有序升序序列合并
  • RAG-9-Milvus介绍及多模态检索实践
  • 精密机械加工量产为何两难?精度和效率如何兼得?