OpenAI-ChatGPT最新官方接口《安全最佳实例》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(十)(附源码)

news2024/12/23 22:50:19

Safety best practices 安全最佳实践

  • 前言
  • Use our free Moderation API 使用我们的免费审核API
  • Adversarial testing 对抗性测试
  • Human in the loop (HITL) 人在回路
  • Prompt engineering 快速工程
  • “Know your customer” (KYC) “了解你的客户”
  • Constrain user input and limit output tokens 约束用户输入并限制输出标记
  • Allow users to report issues 允许用户报告问题
  • Understand and communicate limitations 了解和沟通局限性
  • End-user IDs 最终用户ID
  • 其它资料下载

在这里插入图片描述

前言

在确保使用ChatGPT安全方面,作为开发人员,不仅要采取适当的技术措施来保护相关系统,比如加密、防火墙、Red-teaming,还需要采用预防措施,来引导用户如何识别和避免潜在的安全威胁,比如相关的审核机制。当然还可以采用适当的Human in the loop措施,在一些高风险领域中进行人工审查,以确保系统正常运行。

Use our free Moderation API 使用我们的免费审核API

OpenAI’s Moderation API is free-to-use and can help reduce the frequency of unsafe content in your completions. Alternatively, you may wish to develop your own content filtration system tailored to your use case.
OpenAI的审核API是免费使用的,可以帮助减少不安全内容在完成中的频率。或者,您可能希望开发适合您的用例的内容过滤系统。

Adversarial testing 对抗性测试

We recommend “red-teaming” your application to ensure it’s robust to adversarial input. Test your product over a wide range of inputs and user behaviors, both a representative set and those reflective of someone trying to ‘break’ your application. Does it wander off topic? Can someone easily redirect the feature via prompt injections, e.g. “ignore the previous instructions and do this instead”?
我们建议对你的应用程序进行“红队”测试,以确保它对对抗性输入的鲁棒性。在广泛的输入和用户行为上测试您的产品,包括代表性的集合和反映某人试图“破坏”您的应用程序的集合。是否偏离了主题?是否有人可以通过提示注入轻松地重定向该功能,例如“忽略先前的说明并执行此操作”?

Human in the loop (HITL) 人在回路

Wherever possible, we recommend having a human review outputs before they are used in practice. This is especially critical in high-stakes domains, and for code generation. Humans should be aware of the limitations of the system, and have access to any information needed to verify the outputs (for example, if the application summarizes notes, a human should have easy access to the original notes to refer back).
只要有可能,我们建议在实际使用输出之前进行人工审查。这在高风险领域和代码生成中尤其重要。人类应该意识到系统的局限性,并且可以访问验证输出所需的任何信息(例如,如果应用程序总结了注释,则人类应该可以轻松访问原始注释以进行引用)。

Prompt engineering 快速工程

“Prompt engineering” can help constrain the topic and tone of output text. This reduces the chance of producing undesired content, even if a user tries to produce it. Providing additional context to the model (such as by giving a few high-quality examples of desired behavior prior to the new input) can make it easier to steer model outputs in desired directions.
“提示工程”可以帮助约束输出文本的主题和语气。这减少了产生不期望的内容的机会,即使用户试图产生它。向模型提供额外的上下文(例如通过在新输入之前给出期望行为的一些高质量示例)可以使模型输出更容易地转向期望的方向。

“Know your customer” (KYC) “了解你的客户”

Users should generally need to register and log-in to access your service. Linking this service to an existing account, such as a Gmail, LinkedIn, or Facebook log-in, may help, though may not be appropriate for all use-cases. Requiring a credit card or ID card reduces risk further.
用户通常需要注册和登录才能访问您的服务。将此服务链接到现有帐户(例如Gmail,LinkedIn或Facebook登录)可能会有所帮助,但可能不适合所有用例。要求信用卡或身份证可以进一步降低风险。

Constrain user input and limit output tokens 约束用户输入并限制输出标记

Limiting the amount of text a user can input into the prompt helps avoid prompt injection. Limiting the number of output tokens helps reduce the chance of misuse.
限制用户可以输入到提示中的文本量有助于避免提示注入。限制输出标记的数量有助于减少误用的机会。

Narrowing the ranges of inputs or outputs, especially drawn from trusted sources, reduces the extent of misuse possible within an application.
缩小输入或输出的范围,特别是从可信来源提取的输入或输出的范围,减少了应用程序内可能的误用程度。

Allowing user inputs through validated dropdown fields (e.g., a list of movies on Wikipedia) can be more secure than allowing open-ended text inputs.
允许用户通过验证的下拉字段输入(例如,维基百科上的电影列表)可以比允许开放式文本输入更安全。

Returning outputs from a validated set of materials on the backend, where possible, can be safer than returning novel generated content (for instance, routing a customer query to the best-matching existing customer support article, rather than attempting to answer the query from-scratch).
如果可能,在后端返回一组经过验证的材料的输出比返回新生成的内容更安全(例如,将客户查询路由到最匹配的现有客户支持文章,而不是尝试从头开始回答查询)。

Allow users to report issues 允许用户报告问题

Users should generally have an easily-available method for reporting improper functionality or other concerns about application behavior (listed email address, ticket submission method, etc). This method should be monitored by a human and responded to as appropriate.
用户通常应该有一个容易获得的方法来报告不正确的功能或其他有关应用程序行为的问题(列出的电子邮件地址,票证提交方法等)。该方法应由人监测,并在适当时作出响应。

Understand and communicate limitations 了解和沟通局限性

From hallucinating inaccurate information, to offensive outputs, to bias, and much more, language models may not be suitable for every use case without significant modifications. Consider whether the model is fit for your purpose, and evaluate the performance of the API on a wide range of potential inputs in order to identify cases where the API’s performance might drop. Consider your customer base and the range of inputs that they will be using, and ensure their expectations are calibrated appropriately.
从产生不准确信息的幻觉,到攻击性输出,再到偏见等等,语言模型在没有重大修改的情况下可能不适合每一个用例。考虑模型是否适合您的目的,并在广泛的潜在输入上评估API的性能,以确定API性能可能下降的情况。考虑你的客户群和他们将使用的输入范围,并确保他们的期望得到适当的校准。

Safety and security are very important to us at OpenAI.
在OpenAI,安全和安保对我们非常重要。
If in the course of your development you do notice any safety or security issues with the API or anything else related to OpenAI, please submit these through our Coordinated Vulnerability Disclosure Program.
如果在开发过程中,您确实注意到API的任何安全问题或与OpenAI相关的任何其他问题,请通过我们的协调漏洞披露计划提交这些问题。

End-user IDs 最终用户ID

Sending end-user IDs in your requests can be a useful tool to help OpenAI monitor and detect abuse. This allows OpenAI to provide your team with more actionable feedback in the event that we detect any policy violations in your application.
在您的请求中发送最终用户ID可以是帮助OpenAI监控和检测滥用的有用工具。这允许OpenAI在我们检测到您的应用程序中存在任何违反策略的情况下,为您的团队提供更多可操作的反馈。

The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. If you offer a preview of your product to non-logged in users, you can send a session ID instead.
ID应该是唯一标识每个用户的字符串。我们建议对他们的用户名或电子邮件地址进行哈希处理,以避免向我们发送任何识别信息。如果您向未登录的用户提供产品预览,则可以改为发送会话ID。

You can include end-user IDs in your API requests via the user parameter as follows:
您可以通过 user 参数在API请求中包含最终用户ID,如下所示:

Python代码示例:

response = openai.Completion.create(
  model="text-davinci-003",
  prompt="This is a test",
  max_tokens=5,
  user="user123456"
)

cURL代码示例:

curl https://api.openai.com/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
  "model": "text-davinci-003",
  "prompt": "This is a test",
  "max_tokens": 5,
  "user": "user123456"
}'

其它资料下载

如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载》
这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。

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

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

相关文章

【Vue3】setup的注意点及watch监视属性的六种情况

一,setup须知 1.1setup的执行时间 1.setup的执行时间要比beforCreate执行要早 export default {name: "Demo",beforeCreate(){console.log(beforeCreate已执行);},setup() {console.log(setup已执行);let person reactive({name: "小明",ag…

Faster RCNN系列——RPN的真值详解与损失值计算

目录 一、RPN真值详解二、RPN预测值三、损失值计算 一、RPN真值详解 RPN的真值分为类别真值和偏移量真值,即每一个Anchor是否对应着真实物体,以及每一个Anchor对应物体的真实偏移值,这两种真值的具体求解过程如下图所示: Anchor生…

【小程序云开发】不用后端也能构建完整的微信小程序

文章目录 什么是微信小程序云函数云数据库HTTP 云函数定时触发云函数总结写在最后 什么是微信小程序云函数 微信小程序云函数是通过微信小程序云开发提供的一种服务器端代码,用于在小程序中进行服务器端的开发和部署。 以下是一些常见的微信小程序云函数类型&#…

AI网站汇总(免费chatgpt)(70个持续增加中)

本文总结了八大类AI工具,包括:聊天AI、绘画AI、AI提示词、图像处理、实用工具、UI设计和3D设计、本地部署AI,汇总AI网站,一键收藏。 目录 一、聊天AI 二、绘画AI 三、AI提示词 四、图像处理

巡检机器人之仪表识别系统

作者主页:爱笑的男孩。 博客简介:分享机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。 如发现文章有误,麻烦请指出,我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666foxmail.c…

什么是LVS

😘作者简介:一名99年运维岗位员工。👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。🙏创作不易,动动…

【brtc】视频下行弱网对抗优化 学习笔记

感谢孙健老师和livevideostack学习笔记百度云 音视频实时通信五个部分 1 RTC基础 需要云端服务器参与大量边缘服务器参与采集、前处理(图像处理)、压缩编码音频 3 A 回声消除、增益</

类ChatGPT逐行代码解读(1/2):如何从零起步实现Transformer、ChatGLM

前言 最近一直在做类ChatGPT项目的部署 微调&#xff0c;关注比较多的是两个&#xff1a;一个LLaMA&#xff0c;一个ChatGLM&#xff0c;会发现有不少模型是基于这两个模型去做微调的&#xff0c;说到微调&#xff0c;那具体怎么微调呢&#xff0c;因此又详细了解了一下微调代…

深度学习竞赛进阶技巧 - BLIP使用说明与实战

BLIP-2: 图像到文本的生成器 BLIP-2: Scalable Pre-training of Multimodal Foundation Models for the World’s First Open-source Multimodal Chatbot 1论文摘要 由于大规模模型的端到端的训练&#xff0c;视觉与语言的预训练模型的成本越来越高。本文提出了BLIP-2&#x…

网络原理(IP协议)

目录IP协议IP地址IP 地址由网络和主机两部分标识组成IP 地址的分类广播地址IP多播子网掩码路由IP 地址与路由控制IP 分包与组包什么是IP分片为什么要进行IP分片IP分片是如何组装的路径 MTU 发现IP协议 IP&#xff08;IPv4、IPv6&#xff09;相当于 OSI 参考模型中的第3层——网…

玩转ChatGPT:Auto-GPT项目部署与测评

一、Auto-GPT简介 最近&#xff0c;以ChatGPT为代表的超大规模语言模型火出了圈&#xff0c;各种二次开发项目也是层出不穷。 这周在AI圈炸街的是Auto-ChatGPT&#xff0c;在GitHub上已经61.4K的点赞了。 项目地址&#xff1a;https://github.com/Torantulino/Auto-GPT 用项…

命令设计模式(Command Pattern)[论点:概念、组成角色、相关图示、示例代码、框架中的运用、适用场景]

文章目录概念组成角色相关图示示例代码框架中的运用适用场景概念 命令设计模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c;它将请求的操作封装为一个对象&#xff0c;从而实现请求者和执行者之间的解耦。这样&#xff0c;请求者只需要知道如何发送…

Darknet19详细原理(含tensorflow版源码)

Darknet19原理 Darknet19是一个轻量级的卷积神经网络&#xff0c;用于图像分类和检测任务。 它是YOLOv2目标检测算法的主干网络&#xff0c;它的优点在于具有较少的参数和计算量&#xff0c;在计算速度和精度之间取得了良好的平衡&#xff0c;同时在训练过程中也具有较高的准确…

MobileNetV1详细原理(含torch源码)

目录 MobileNetV1原理 MobileNet V1的网络结构如下&#xff1a; 为什么要设计MobileNet&#xff1a; MobileNetV1的主要特点如下&#xff1a; MobileNetV1的创新点&#xff1a; MobileNetV1源码&#xff08;torch版&#xff09; 训练10个epoch的效果 MobileNetV1原理 Mo…

玩转ChatGPT:中科院ChatGPT Academic项目部署与测评

一、ChatGPT Academic简介 最近&#xff0c;以ChatGPT为代表的超大规模语言模型火出了圈&#xff0c;各种二次开发项目也是层出不穷。 比如说今天我们玩弄的这个“ChatGPT Academic”&#xff0c;在GitHub上已经13.7K的点赞了。 项目地址&#xff1a;https://github.com/bina…

因为这5大工具,同事直呼我时间管理小王子

写在前面 关于时间管理、如何做计划、如何提高执行力等等相关话题其实很早之前我就想写了&#xff0c;但一直拖着迟迟没有动笔。 在之前的一篇文章里我曾详细聊过自己对于时间管理&#xff0c;如何提高执行力&#xff0c;以及如何摆脱那种没有灵魂的任务计划的一些思考和做法…

【C语言】深度理解指针(中)

前言✈ 上回说到&#xff0c;我们学习了一些与指针相关的数据类型&#xff0c;如指针数组&#xff0c;数组指针&#xff0c;函数指针等等&#xff0c;我们还学习了转移表的基本概念&#xff0c;学会了如何利用转移表来实现一个简易计算器。详情请点击传送门&#xff1a;【C语言…

Windows 下安装和使用Redis

Redis 一般安装在Linux中&#xff0c; 但有时出于学习和其他目的&#xff0c;需要在Windows机器运行Redis&#xff0c; 本篇介绍如果在&#xff37;indows中运行和使用Redis。 关于Redis的基本介绍可以参考&#xff1a; Redis介绍、安装与初体验 Windows 下Redis的下载 可…

【NestJs】日志收集

Nest 附带一个默认的内部日志记录器实现&#xff0c;它在实例化过程中以及在一些不同的情况下使用&#xff0c;比如发生异常等等&#xff08;例如系统记录&#xff09;。这由 nestjs/common 包中的 Logger 类实现。你可以全面控制如下的日志系统的行为&#xff1a; 完全禁用日…

jenkins windows安装 部署项目 前端 后端

安装 需要安装的程序&#xff1a; 1.下载jenkins windows版本 2.400 此版本需要jdk11 https://www.jenkins.io/ 按着提示安装即可 2.下载jdk 11 https://login.oracle.com/ 按着提示安装即可 部署pc 1.新建项目 2.源码管理 3.添加git用户 4.Build Steps 构建 初始化np…