大模型生成,Open API调用

news2024/10/5 13:55:09

大模型是怎么生成结果的

通俗原理

其实,它只是根据上文,猜下一个词(的概率)……

OpenAI 的接口名就叫【completion】,也证明了其只会【生成】的本质。

下面用程序演示【生成下一个字】。你可以自己修改 prompt 试试。还可以用相同的 prompt 运行多次。

from openai import OpenAI
import os

from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())

client = OpenAI()

prompt = "今天我很"    # 改我试试
response = client.completions.create(
    model="gpt-3.5-turbo-instruct",
    prompt=prompt,
    max_tokens=20,
    stream=True
)

for chunk in response:
    print(chunk.choices[0].text, end='')

典型业务架构

AI Embedded 模式:某个环节用到AI

AI  Copilot 模式:很多环节用到AI

AI Agent 模式:AI被大量的应用,人做的事几乎微乎其微,只需提要求

技术架构

1、纯Prompt

就像和一个人对话,你说一句,ta回一句,你再说一句,ta再回一句……

2、RAG = Agent + Function Calling

Agent:AI主动提要求

Function Calling:AI要求执行某个函数

场景举例:你问过年去哪玩,ta先反问你有几天假

3、RAG = Embeddings + 向量数据库

向量搜索:根据输入向量,找到最相似的向量

场景举例:考试时,看到一道题,到书上找相关内容,再结合题目组成答案。然后就都忘了(打小抄) 

 4、Fine-tuning

(不打小抄,把知识记住了,回答效果更好)

编程调用 Open API

官方文档:https://platform.openai.com/docs/api-reference 

 1、安装OpenAI Python库

在命令行执行:

pip install --upgrade openai

2、发一条消息

import openai
import os

# 加载 .env 文件到环境变量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())

# 初始化 OpenAI 服务。会自动从环境变量加载 OPENAI_API_KEY 和 OPENAI_BASE_URL
client = OpenAI()

# 消息格式
messages = [
    {
        "role": "system",
        "content": "你是AI助手小瓜,是 AGI 课程的助教。这门课每周二、四上课"
    },
    {
        "role": "user",
        "content": "哪天有课?"
    },
}

#调用GPT-3.5
chat_completion = client.chat.completion.create(
    model="gpt-3.5-turbo",
    message=message
)

#输出回复
print(chat_completion.choices[0].message.content)

这门课每周二、四有课。因此,下一堂课将在本周二举行,再次在本周四上课。

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

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

相关文章

Appium移动端自动化测试-(Java)

目录 环境搭建ADB调试工具adb构成adb工作原理adb常用命令电脑连接多个设备跟模拟器使用adb包名与界面名的概念如何获取包名和界面名文件传输获取app启动时间获取手机日志其他命令 Appium全自动化测试框架(python)冲错了序言 环境搭建Appium客户端安装App…

IDEA切换 Springboot初始化 URL

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…

【矩阵】【方向】【素数】3044 出现频率最高的素数

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 素数 矩阵 方向 LeetCode 3044 出现频率最高的素数 给你一个大小为 m x n 、下标从 0 开始的二维矩阵 mat 。在每个单元格,你可以按以下方式生成数字: 最多有 8 条路径可以选择:东&am…

C语言基础(三)——函数

六、函数 6.1 函数的声明与定义—嵌套调用 6.1.1 函数的声明与定义 函数间的调用关系是,由主函数调用其他函数,其他函数也可以互相调用,同一个函数可以背一个或多个函数调用任意次。 下例中有两个c文件, func.c是子函数printstar和print_me…

光伏气象站的组成

TH-FGF9光伏气象站主要由以下几个部分组成: 光伏组件:光伏组件是光伏气象站的核心部分,其主要功能是将太阳能转化为电能,为气象站的各项设备提供电源。光伏组件通常由多个光伏电池板组成,能够有效地吸收并利用太阳能。…

C++:String类的使用

创作不易,感谢三连!! 在C语言中,我们想要存储字符串的话必须要用字符数组 char str[]"hello world"这其实是将在常量区的常量字符串拷贝到数组中,我们会在数组的结尾多开一个空间存储\0,这样我…

pyuic生成py文件到指定文件夹

pyuic生成py文件到指定文件夹 关于如何在pycharm配置外部工具的方法这里不做赘述,本文主要说明,如何利用pyuic将ui文件生成到指定的项目目录中。 前提条件:已配置的pyuic工具可以正常使用生成文件到目录中。 一、打开外部工具配置页面 打开…

吸猫毛空气净化器哪个好?推荐除猫毛好的宠物空气净化器品牌

如今,越来越多的家庭选择养宠物!虽然家里变得更加温馨,但养宠可能会带来异味和空气中的毛发增多可能会引发健康问题,这也是一个大问题。 但我不想家里到处都是异味,尤其是便便的味道,所以很需要一款能够处…

android Service 与 activity 通信 并不断传数据

注:这只是个Demo 以下载为案例,实现开启下载,暂停下载,下载进度不断发送给activity class DownloadService : Service() {override fun onBind(intent: Intent?): IBinder? {return MyBinder()}inner class MyBinder : Binder…

mysql学习--binlog与gtid主从同步

基础环境 基于centOS7-MySQL8.0.35版本 我们先准备一台主服务器两台从服务器来实现我们主从同步的诉求 Master:192.168.75.142 slave1:192.168.75.143 slave:192.168.75.145 binlog主从同步 主库配置 #我们需要在主从库中都需要添加server_id&am…

如何学习、上手点云算法(一):点云基础

写在前面 本文内容 点云算法的学习基础,入门方法,相关领域,资源,开源库,算法等的介绍; 以Open3D和PCL等为基础工具的点云处理代码讲解、实现; 文中涉及的参考以链接形式给出,涉及文…

综合练习(二)

目录 列出薪金比 SMITH 或 ALLEN 多的所有员工的编号、姓名、部门名称、领导姓名、部门人数,以及所在部门的平均工资、最高和最低工资 补充 spool Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 列出薪金比 SMITH 或 AL…

探索数据结构:解锁计算世界的密码

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty‘s blog 前言 随着应用程序变得越来越复杂和数据越来越丰富,几百万、…

LabVIEW最佳传输系统设计

LabVIEW最佳传输系统设计 介绍了基于LabVIEW软件开发的最佳基带传输系统和最佳带通传输系统的设计。通过软件仿真实现了脉冲成形滤波器和匹配滤波器的设计,证明了系统在消除码间干扰和抗噪声方面的优异性能。此设计不仅激发了学生的学习兴趣,还有助于提…

kubernetes最新版安装单机版v1.21.5

k8s集群由Master节点和Node(Worker)节点组成。 1.环境 环境:centos 7资源配置:2c4g (CPU最少2c,不然k8s起不来)docker:25.0.3k8s:1.21.5 2.安装前置环境 [rootbertra…

【Android开发】01-第一个Android APP

一、改MainActivity class MainActivity : AppCompatActivity() {/*因Android的app有生命周期,故入口是OnCreate而不是main函数*/override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main…

Kubernetes的五大开源存储项目

在Kubernetes中,关于数据的持久化管理是一种挑战,对此,社区提供了多种存储的解决方案,这些方案旨在简化和优化容器化应用程序的持久化数据管理。 现介绍 Kubernetes 的五大开源存储项目,带你了解开源存储解决方案的多…

java常用应用程序编程接口(API)——LocalDateTime,LocalDate,LocalTime,ZoneId,ZonedDateTime概述

前言: 在jdk8以后,出现了更多好用的时间相关的api,整理下使用心得。打好基础,daydayup! jdk8以前使用的时间api可以看这篇: java常用应用程序编程接口(API)——Date,SimpleDateForm…

学校机房Dev c++解决中文乱码问题

工具->编译选项->勾选 编译时加入以下命令 -fexec-charsetGBK -finput-charsetUTF-8 显示中文:工具->编辑器选项->去掉第一个的勾勾。

【多线程】常见锁策略详解(面试常考题型)

目录 🌴 乐观锁 vs 悲观锁🎍重量级锁 vs 轻量级锁🍀自旋锁(Spin Lock)🎋公平锁 vs ⾮公平锁🌳可重⼊锁 vs 不可重⼊锁🎄读写锁⭕相关面试题 常⻅的锁策略 注意: 接下来讲解的锁策略不…