Open AI 使用篇

一.function Calling

大模型中的 function calling 指的是在人工智能模型(如 GPT-4)中调用外部函数或API,以便模型能够执行更复杂的任务或获取外部数据。这种方式允许模型在生成回答时不仅仅依赖于内部的训练数据,还能够与外部系统进行交互,从而拓展其功能

关键点

  • 模型能够获取外部数据

原理

在这里插入图片描述

案例

# 导入必要的库
from openai import OpenAI
import json
import requests# 定义一个获取天气数据的函数,使用经纬度作为输入
def get_weather(latitude, longitude):# 发送GET请求到Open Meteo API,获取当前天气信息response = requests.get(f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&current=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m")# 解析返回的JSON数据data = response.json()# 返回当前温度(单位:摄氏度)return data['current']['temperature_2m']# 创建OpenAI客户端实例
client = OpenAI()# 定义工具(函数),用于获取天气
tools = [{"type": "function",  # 这是一个工具(函数),将在对话中使用"function": {"name": "get_my_weather",  # 函数名称"description": "获取提供坐标的当前温度(摄氏度)。",  # 函数描述"parameters": {"type": "object",  # 参数类型为对象"properties": {"latitude": {"type": "number"},  # 纬度是一个数字"longitude": {"type": "number"}  # 经度是一个数字},"required": ["latitude", "longitude"],  # 纬度和经度是必填参数"additionalProperties": False  # 不允许有其他额外的属性},"strict": True  # 确保参数严格匹配定义}
}]# 定义初始的用户消息(询问巴黎的天气情况)
messages = [{"role": "user", "content": "巴黎今天的天气怎么样?"}]# 请求GPT模型生成对话内容,基于用户的消息
completion = client.chat.completions.create(model="gpt-4.1",  # 使用GPT-4.1模型messages=messages,  # 传递当前对话内容(用户的消息)tools=tools,  # 提供工具(天气查询函数)
)# 打印模型生成的工具调用(例如,天气查询函数的调用)
print(completion.choices[0].message.tool_calls)# 从模型的响应中提取工具调用
tool_call = completion.choices[0].message.tool_calls[0]
# 解析工具调用中的函数参数(纬度和经度)
args = json.loads(tool_call.function.arguments)# 使用解析出的纬度和经度调用天气查询函数
result = get_weather(args["latitude"], args["longitude"])# 将模型的函数调用消息添加到对话中
messages.append(completion.choices[0].message)
# 将工具返回的结果(温度)作为消息添加到对话中
messages.append({"role": "tool",  # 这是一条来自工具(天气函数)的消息"tool_call_id": tool_call.id,  # 包含工具调用的ID以供参考"content": str(result)  # 天气查询函数返回的温度结果
})# 请求GPT-4.1模型生成最终的响应,包含天气信息
completion_2 = client.chat.completions.create(model="gpt-4.1",  # 使用GPT-4.1模型messages=messages,  # 传递包含天气查询结果的对话tools=tools,  # 提供工具(虽然此时不再需要,但保持一致性)
)# 打印GPT模型的最终响应,应该包括天气信息
print(completion_2)

二.GPT Builder

GPT Builder 是 OpenAI 提供的工具,允许用户自定义专属 GPT 模型,无需编程。
核心功能

  • 无代码开发:通过对话式界面配置
  • 自定义能力
    - 指令(Instructions)设定行为
    - 知识库(Knowledge)上传文件扩展上下文
    - 能力(Capabilities)启用网页浏览、代码执行等
  • 发布与共享:可私有或公开(GPT Store)

待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/901540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6.DJI-PSDK:psdk订阅无人机高度/速度/GPS/RTK/时间/经纬度等消息及问题解决

DJI-PSDK:psdk订阅无人机高度/速度/GPS/RTK/时间/经纬度等消息 消息订阅可以获取绝大多数无人机的动态信息,包括无人机的姿态、速度、加速度、角速度、高度、GPS 位置、云 台的角度和状态、飞行模式和飞行状态、电机和电池等各类关键信息。 这些信息并不会“一股脑儿地”全部…

100 个网络安全基础知识

1. 什么是网络安全? 网络安全是指采取必要措施,防范对网络的攻击、侵入、干扰、破坏和非法使用以及意外事故,使网络处于稳定可靠运行的状态,保障网络数据的完整性、保密性、可用性。(参考《中华人民共和国网络安全法》…

第七届IEEE通信、信息系统与计算机工程国际会议(CISCE 2025)

重要信息 官网:www.iccisce.com 时间:2025年5月9-11日 地点:中国-广州 征稿主题 通信技术 信息系统 •5G/6G通信系统与网络 •无线通信与移动网络 •光纤通信与光网络 •卫星与空间通信 •通信信号处理与编码 •无线传感器网络 •物联网…

OpenCV 图像拼接

一、图像拼接的介绍 图像拼接是一种将多幅具有部分重叠内容的图像合并成一幅完整、无缝且具有更广阔视野或更高分辨率图像的技术。其目的是通过整合多个局部图像来获取更全面、更具信息价值的图像内容。 二、图像拼接的原理 图像拼接的核心目标是将多幅有重叠区域的图像进行准…

第十一章 网络编程

在TCP/IP协议中,“IP地址TCP或UDP端口号”唯一标识网络通讯中的一个进程。 因此可以用Socket来描述网络连接的一对一关系。 常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM&#xff09…

ffmpeg实现视频流抽帧

ffmpeg 实现视频流抽帧 抽取实时视频帧 如果你的实时视频是通过 RTSP、UDP 或其他协议获取的,可以直接调用 FFmpeg 命令来抽取帧。 ffmpeg 命令 示例 1 ffmpeg -i rtsp://your_rtsp_stream_url -vf fps1 -update 1 output.jpg说明: -i rtsp://your…

【GIT】放弃”本地更改,恢复到远程仓库的状态git fetch origin git reset --hard origin/分支名

如果你想完全放弃本地更改,恢复到远程仓库的状态,可以按照以下步骤操作: 获取远程最新版本 首先执行: git fetch origin这条命令会把远程仓库的最新提交拉取到你的本地,但不会自动合并到你的当前分支。 硬重置你的当前…

flutter doctor 信号号超时

报错如下: :\Users\Administrator>flutter doctor Doctor summary (to see all details, run flutter doctor -v): [√] Flutter (Channel stable, 3.27.4, on Microsoft Windows [版本 10.0.22631.5189], locale zh-CN) [√] Windows Version (Installed versi…

【Linux】系统入门

【Linux】系统初识 起源开源 闭源版本内核内核编号 Linux的安装双系统(不推荐)WindowsLinuxvmware虚拟机vitualbox操作系统的镜像centos 7/ubuntu云服务器租用 Linux的操作lsmkdir 文件名pwdadduser userdel -rrm文件名cat /proc/cpuinfolinux支持编程vim code.c./a.out 运行程…

mybatis-plus整合springboot与使用方式

注解 TableField(exist false)&#xff1a;表示该属性不为数据库表字段&#xff0c;但又是必须使用的。 整合springboot pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xs…

[第十六届蓝桥杯 JavaB 组] 真题 + 经验分享

A&#xff1a;逃离高塔(AC) 这题就是简单的签到题&#xff0c;按照题意枚举即可。需要注意的是不要忘记用long&#xff0c;用int的话会爆。 &#x1f4d6; 代码示例&#xff1a; import java.io.*; import java.util.*; public class Main {public static PrintWriter pr ne…

GPU服务器声音很响可以怎么处理

当GPU服务器运行时噪音过大&#xff0c;通常是由于高负载下散热风扇高速运转所致。以下是分步骤的解决方案&#xff0c;帮助您有效降低噪音并保持设备稳定运行&#xff1a; 一、排查噪音来源 定位声源 • 使用 声级计 或手机分贝检测APP&#xff0c;确定最大噪音位置&#xff0…

STM32平衡车开发实战教程:从零基础到项目精通

STM32平衡车开发实战教程&#xff1a;从零基础到项目精通 一、项目概述与基本原理 1.1 平衡车工作原理 平衡车是一种基于倒立摆原理的两轮自平衡小车&#xff0c;其核心控制原理类似于人类保持平衡的过程。当人站立不稳时&#xff0c;会通过腿部肌肉的快速调整来维持平衡。平…

C#设计模式-状态模式

状态模式案例解析&#xff1a;三态循环灯的实现 案例概述 本案例使用 状态模式&#xff08;State Pattern&#xff09; 实现了一个 三态循环灯 的功能。每点击一次按钮&#xff0c;灯的状态会按顺序切换&#xff08;状态1 → 状态2 → 状态3 → 状态1...&#xff09;&#xff…

Mac系统升级node.js版本和npm版本并安装pnpm

1.升级node.js版本 第一步&#xff1a;查询当前node.js版本 node -v第二步&#xff1a;清除node.js的缓存 sudo npm cache clean -f第三步&#xff1a;验证缓存是否清空 npm cache verify第四步&#xff1a;安装n工具&#xff0c;n工具是专门用于管理node.js版本的工具 su…

[net 5] udp_dict_server 基于udp的简单字典翻译(服务器与业务相分离)

目录 1. 功能了解 1.1. 啥是 dic_server? 1.2. dic_server 的小目标 2. 基本框架 2.1. 基本文件框架 2.2. 业务与服务器解耦 -> 回调函数 3. 字典 3.1. 字典配置文件 3.2. 构建字典类 3.2.1. 字典类的基本成员 3.2.2. 字典类构造 3.2.2.1. 构造 3.2.2.2. 信息加…

七种驱动器综合对比——《器件手册--驱动器》

九、驱动器 名称 功能与作用 工作原理 优势 应用 隔离式栅极驱动器 隔离式栅极驱动器用于控制功率晶体管&#xff08;如MOSFET、IGBT、SiC或GaN等&#xff09;的开关&#xff0c;其核心功能是将控制信号从低压侧传输到高压侧的功率器件栅极&#xff0c;同时在输入和输出之…

EM储能网关ZWS智慧储能云应用(8) — 电站差异化支持

面对不同项目、种类繁多的储能产品&#xff0c;如何在储能云平台上进行电站差异化支持尤为关键&#xff0c;ZWS智慧储能云从多方面支持储能电站差异化。 简介 随着行业发展&#xff0c;市场“内卷”之下&#xff0c;各大储能企业推陈出新的速度加快。面对不同项目、种类繁多…

图像预处理-色彩空间补充,灰度化与二值化

一.图像色彩空间转换 1.1 HSV颜色空间 HSV颜色空间使用色调&#xff08;Hue&#xff09;、饱和度&#xff08;Saturation&#xff09;和亮度&#xff08;Value&#xff09;三个参数来表示颜色 一般对颜色空间的图像进行有效处理都是在HSV空间进行的&#xff0c;然后对于基本…

Midnight Flag CTF 2025

周末还是三个比赛&#xff0c;可惜不好弄。不是远端连不上就是远端打不开。再有就是太难了。 Crypto ABC 这个题还是不算难的。给了两个30位数的平方和&#xff0c;并且pu1*baser0,qu2*baser1其中r 都很小&#xff0c;可以copper。 只是sage里的two_squres不管用&#xff0…