openAI API简介 怎么写提示词获取更好的结果。prompt-engineering使用指南。人工智能的重大里程碑事件及技术创新chatGPT1

news2025/1/9 16:23:43

OpenAI API 几乎可以应用于任何任务。

包括内容或代码生成、摘要、对话、创意写作、图片生成、文本语音互转等。

关键概念

文本生成:提示,输入越精准,输出越精准。
获得更好结果的几种策略:
	1.写出清晰的指令:
		包含详细信息(不要让模型来猜测你的意思。不要有歧义。请提供任何重要的详细信息或上下文。)(谁是总统?世界上那么多,怎么回答? 详细:	谁是 2021 年的墨西哥总统,选举多久举行一次?)
		要求模型采用角色(不同的角色 思考的角度不一样)
		使用分隔符清楚地指示输入的不同部分(三引号、XML 标记、章节标题等分隔符可以帮助划分要区别对待的文本部分。)(任务越复杂,消除任务细节的歧义就越重要)
		指定完成任务所需的步骤(第 1 步,做什么 ;第 2 步,做什么)
		举例说明(比如以鲁迅的风格回答。甄嬛体风格)
		指定所需的输出长度。(比如要求回复500字)
	2.提供参考文本,以更少的捏造发明虚假答案
		指示模型使用参考文本进行回答 (指示模型使用提供的信息来撰写其答案。)
		指示模型使用参考文本中的引文进行回答(即注明来源,引用哪个资料或链接等)
	3.将复杂的任务拆分为更简单的子任务。复杂任务往往比简单任务具有更高的错误率。(拆分后,用早期任务的输出用于构建后续任务的输入)
		使用意向分类来识别与用户查询最相关的指令(根据客户查询的分类,可以向模型提供一组更具体的指令,以便其处理后续步骤。)
		对于需要很长对话的对话应用程序,请总结或筛选上一个对话(在整个对话中在后台异步总结先前的对话)
		分段总结长文档,递归构建完整摘要(为了总结一个很长的文档,比如一本书,我们可以使用一系列查询来总结文档的每个部分。章节摘要可以串联和汇总,从而产生摘要的摘要。此过程可以递归方式进行,直到对整个文档进行汇总。如果有必要使用有关前面部分的信息来理解后面的部分)
	4.给模型“思考”的时间
		策略:在匆忙得出结论之前,指示模型制定自己的解决方案	(通过提示模型首先生成自己的解决方案来让模型成功注意到这一点)(模型自己想的与你给的对照,模型在回答特定问题之前详细推理问题有时很重要)
		策略:使用内心独白或一系列查询来隐藏模型的推理过程(通过一系列查询来实现,其中除最后一个查询外,所有查询的输出都对最终用户隐藏。)
		策略:询问模型在之前的传递中是否遗漏了任何内容(通过提示模型进行后续查询来查找它在以前的传递中遗漏的任何摘录,从而获得更好的性能。)
	5.使用外部工具
		策略:使用基于嵌入的搜索实现高效的知识检索(如果用户询问有关特定电影的问题,则将有关电影的高质量信息(例如演员、导演等)添加到模型的输入中可能很有用。嵌入可用于实现高效的知识检索)
		策略:使用代码执行来执行更准确的计算或调用外部 API(不能依赖语言模型自行准确地执行算术或长计算。如果需要,可以指示模型编写和运行代码,而不是进行自己的计算。特别是,可以指示模型将要运行的代码放入指定格式,例如三重反引号。生成输出后,可以提取并运行代码。最后,如有必要,可以将代码执行引擎(即 Python 解释器)的输出作为下一个查询的模型输入。) (调用外部 API 比如执行python脚本这个牛,可以与你的程序结合了,但不安全)
		策略:授予模型对特定函数的访问权限
		策略:系统地测试更改(如果判断模型给出的哪种答案更好?输出的评估可以由计算机、人类或混合完成。)
		策略:参考黄金标准答案评估模型输出(假设已知问题的正确答案应参考一组特定的已知事实。然后,我们可以使用模型查询来计算答案中包含多少必需的事实。)
助理:可以访问工具,这些工具允许助手执行更复杂的任务,例如运行代码或从文件中检索信息、控制机械手臂等。
嵌入:嵌入可用于搜索、聚类分析、建议、异常检测、分类等。比如上传文档。
令 牌:有点像模型处理的最小元素或单元。
文本语音互转:可以理解几乎所有人类语言方言等转文本,可以把文本输出为几乎自然的人的语音。
图像生成:按文本或图像或文件,生成图像。
视觉:图片理解,懂图的意思。

无需编码也能试用API

C# 快速入门 文本生成

using Newtonsoft.Json;
using System.Text;

class Program
{
    static readonly HttpClient client = new HttpClient();

    static async Task Main()
    {
        try
        {
            // 设置 API 密钥
            string apiKey = "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";
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");

            // 构建请求体
            var requestData = new
            {
                model ="gpt-3.5-turbo-1106",
                messages = new[] { 
                    new { role = "system",content = "周树人与鲁迅是什么关系" }, 
                },              
                temperature = 1,
                max_tokens = 600
            };
            string json = JsonConvert.SerializeObject(requestData);
            StringContent content = new StringContent(json, Encoding.UTF8, "application/json");

            // 发送请求
            HttpResponseMessage response = await client.PostAsync("https://api.openai.com//v1/chat/completions", content);

            // 获取响应
            string responseString = await response.Content.ReadAsStringAsync();
            Console.WriteLine(responseString);

            // 解析content
            dynamic data= JsonConvert.DeserializeObject(responseString);
            var choices=data.choices;
            if (choices!=null)
            {
                foreach (var choice in choices)
                {
                    var message = choice.message;
                    Console.WriteLine($"content: {message.content}");
                }
            }
        
        }
        catch (HttpRequestException e)
        {
            Console.WriteLine("\nException Caught!");
            Console.WriteLine("Message :{0} ", e.Message);
        }
    }
}

在这里插入图片描述

助手 API 原理

它与文本生成有什么不同?可以理解为多钱程的文本生成,我可以一直连续问,而不用等他回复。
在这里插入图片描述
任务的状态
在这里插入图片描述

人工智能的重大里程碑事件及技术创新:

一旦技术传递到普通大众,就意味着新的时代浪潮来临,个人电脑,人人上网,个人手机,个人智能Copilot。

1950年,艾伦·图灵提出了著名的图灵测试,用于评估机器是否具有智能。
1956年,约翰·麦卡锡等人在达特茅斯会议上首次提出了人工智能这个术语。
1997年,IBM的深蓝下棋程序击败了世界冠军加里·卡斯帕罗夫,成为第一个在国际象棋比赛中战胜人类的计算机系统。
2011年,IBM的沃森问答系统在美国电视节目危险边缘上击败了两位冠军选手,展示了自然语言处理和知识表示的能力。
2016年,谷歌的AlphaGo围棋程序在五局对弈中以4:1的比分战胜了世界冠军李世石,证明了深度学习和强化学习的强大性能。
2020年,OpenAI的GPT-3语言模型在多个自然语言理解和生成的任务上达到了令人惊叹的水平,创造了大规模预训练和自监督学习的新纪录。

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

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

相关文章

YOLO目标检测——无人机航拍行人检测数据集下载分享【含对应voc、coc和yolo三种格式标签】

实际项目应用:智能交通管理、城市安防监控、公共安全救援等领域数据集说明:无人机航拍行人检测数据集,真实场景的高质量图片数据,数据场景丰富标签说明:使用lableimg标注软件标注,标注框质量高,…

【Java】异常处理(一)

🌺个人主页:Dawn黎明开始 🎀系列专栏:Java ⭐每日一句:什么都不做,才会来不及 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️ 文章目录 📋前…

2023下半年软件设计师考试知识点大全思维导图

软件设计师考试知识点大全思维导图 2023年下半年第一次机考 复习资料 以上是我在学习过程中根据自己的知识结构的特点及刷到的考题 做的导图,有需要的可以留言发原版的 mmap格式文件 方便自己拓展. 软考资料 这是网上找的资料 汇总免费放在这里 吧![ 链接&#x…

SpringBoot 整合 JdbcTemplate(配置多数据源)

数据持久化有几个常见的方案,有 Spring 自带的 JdbcTemplate 、有 MyBatis,还有 JPA,在这些方案中,最简单的就是 Spring 自带的 JdbcTemplate 了,这个东西虽然没有 MyBatis 那么方便,但是比起最开始的 Jdbc…

【Web】Ctfshow Nodejs刷题记录

目录 ①web334 ②web335 ③web336 ④web337 ⑤web338 ⑥web339 ⑦web340 ⑧web341 ⑨web342-343 ⑩web344 ①web334 进来是一个登录界面 下载附件,简单代码审计 表单传ctfshow 123456即可 ②web335 进来提示 get上传eval参数执行nodejs代码 payload: …

软件项目测试指南

软件测试是保证软件产品质量的重要手段之一。它是测量、评估软件产品特点和能力的活动。现在,国内一些软件企业对于软件测试的重视程度还很不够,认为测试工作非常简单,只是简单地操作所测的软件产品而已。这种错误的思想严重影响了国内软件质…

【深入Scrapy实战】从登录到数据解析构建完整爬虫流程

文章目录 1. 写在前面2. 抓包分析3. Scrapy提交登陆请求4. 列表与详情页面数据解析5. 中间件Middleware配置 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xf…

趣学python编程 (四、数据结构和算法介绍)

数据结构和算法在编程中非常重要。数据结构是组织和存储数据的方式,而算法是解决问题的方法和步骤。你要挑战的蓝桥杯,实际也是在设计算法解决问题。其实各种编程语言都只是工具,而程序的核心数据结构算法。犹如练武,数据结构和算…

Zotero在word中插入带超链接的参考文献/交叉引用/跳转参考文献

Zotero以其丰富的插件而闻名,使用起来十分的带劲,最重要的是它是免费的、不卡顿,不像某专业软件。 然而Zotero在word插入参考文献时,无法为参考文献添加超链接,这是一个不得不提的遗憾。 不过,有大佬已经…

C语言——写一个函数,每调用一次这个函数,就会将num的值增加1

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void Add(int* p) {(*p); // 的优先级高于* } int main() {int num0;Add(&num);printf("第一次调用:num %d\n",num);Add(&num);printf("第二次调用:num %d\n",num);Add(&num);p…

如何客观看待通过线上性格测试来刷人的公司?

不论是校招&#xff0c;还是社招&#xff0c;我认为采用性格测评的目的&#xff0c;有两种情况&#xff1a; 1、应聘者多&#xff0c;减轻面试的压力 这种情况是最常见的&#xff0c;如果招不到人&#xff0c;应聘者少&#xff0c;我想HR是恨不得开车去接你过来面试&#xff…

Java 算法篇-链表的经典算法:判断回文链表、判断环链表与寻找环入口节点(“龟兔赛跑“算法实现)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 链表的创建 2.0 判断回文链表说明 2.1 快慢指针方法 2.2 使用递归方式实现反转链表方法 2.3 实现判断回文链表 - 使用快慢指针与反转链表方法 3.0 判断环链表说明…

【数据结构初阶】双链表

双链表 1.双链表的实现1.1结口实现1.2申请结点1.3初始化双链表1.4打印双链表1.5尾插1.6尾删1.7头插1.8头删1.9计算大小1.10查找1.11pos位置插入1.12删除pos位置1.12删除双链表 全部码源 1.双链表的实现 1.1结口实现 #include<stdio.h> #include<stdlib.h> #inclu…

快速排序知识总结

快速排序思维导图&#xff1a; 快速排序算法模版&#xff1a; #include <iostream>using namespace std;const int N 1e5 10;int n; int q[N];void quick_sort(int q[], int l, int r) {if (l > r) return;int x q[(l r) / 2], i l - 1, j r 1;while (i < …

10 Redis的持久化

Redis支持RDB和AOF两种持久化机制 1、RDB(Redis DataBase) 是对命令的全量快照随着key的数量增大&#xff0c;那么写入磁盘的开销也会越来越大 2、RDB文件的生成是否会阻塞主线程 save: 使用save的方式会阻塞主线程&#xff0c;影响redis的性能 bgsave: 一般情况下不会阻塞…

J. Chem. Inf. Model. | 使用GRID描述符进行深度学习预测血脑屏障透过性

今天为大家介绍的是来自Simon Cross团队的一篇论文。深度学习方法能够自动从输入数据中提取相关特征并捕捉输入和输出之间的非线性关系。在这项工作中&#xff0c;作者提出了基于GRID的AI&#xff08;GrAId&#xff09;描述符&#xff0c;这是对GRID MIFs的简单修改&#xff0c…

Javaweb之Ajax的详细解析

1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据&#xff0c;如下图所示的表格中的学生信息&#xff0c;应该来自于后台&#xff0c;那么我们的后台和前端是互不影响的2个程序&#xff0c;那么我们前端应该如何从后台获取数据呢&#xff1f;因为是2个程序&#xff0c;所以…

记一次攻防实战渗透

经典开局一个登录框 由于漏洞应该还未修复。对于数据和相关网址打个码见谅一下 常规思路&#xff08;爆破&#xff09; 常规操作进行一波 尝试弱口令然后开始爆破 对于此种有验证码的爆破&#xff0c;可以借用一个bp插件。 captcha-killer-modified-jdk14.jar 具体使用我就…

读懂:“消费报销”模式新零售打法,适用连锁门店加盟的营销方案

读懂&#xff1a;“消费报销”模式新零售打法&#xff0c;适用连锁门店加盟的营销方案 引言&#xff1a;2023年的双十一已经落下帷幕&#xff0c;作为每年的经典电商促销节&#xff0c;今年已是第15个年头&#xff0c;但是今年各大电商平台却都是非常默契的&#xff0c;没有公布…

算法学习 day26

第二十六天 最大子数组和 53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 动态规划问题 class Solution {public int maxSubArray(int[] nums) {int len nums.length;int[] dp new int[len];dp[0] nums[0];int res dp[0];for(int i 1; i < len; i){dp[i] …