Token usage of Content Filtered messages in Azure OpenAI Services

news2024/9/24 17:29:03

题意:在Azure OpenAI服务中,内容过滤消息的令牌使用

问题背景:

When sending a message to a chat via GetChatCompletions as a response, I get a RequestFailedException. In the exception, I get an answer for which category content filter triggered, but nothing for how many tokens were used.   

在通过 GetChatCompletions 发送消息到聊天作为响应时,我遇到了 RequestFailedException。在异常中,我得到了触发内容过滤器的类别信息,但没有关于使用了多少令牌的任何信息。

So my questions is: Do messages or responses that triggered the Content Filter not use tokens? If they do use tokens, how many are they using, and where can I get this information? Is the Azure OpenAI Service using Content Safety?

所以我的问题是:触发内容过滤器的消息或响应不使用令牌吗?如果它们确实使用令牌,那么它们使用了多少,我可以在哪里获取这些信息?Azure OpenAI服务是否使用内容安全功能?

I tried to parse the message from the exception, but it just doesn't have that kind of information.

我尝试从异常中解析消息,但它就是没有那种信息。

问题解决:

To send a request to the OpenAI API to check whether a given message is likely to trigger the Content Filter.

向OpenAI API发送请求,以检查给定的消息是否可能触发内容过滤器。

Here is the code:        以下是代码

    using System;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using System.Threading.Tasks;
    
    class Program
    {
        static async Task Main()
        {
            string apiKey = "YOUR_OPENAI_API_KEY";  // Replace with your OpenAI API key
            string message = "message that is likely to trigger the Content Filter.";
    
            int? tokenUsage = await GetContentFilteredMessageTokenUsage(apiKey, message);
    
            if (tokenUsage != null)
            {
                Console.WriteLine($"The message used {tokenUsage} tokens.");
            }
            else
            {
                Console.WriteLine("The message did not trigger the Content Filter.");
            }
        }
    
        static async Task<int?> GetContentFilteredMessageTokenUsage(string apiKey, string message)
        {
            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
    
                var payload = new
                {
                    messages = new[]
                    {
                        new
                        {
                            role = "system",
                            content = "You are a helpful assistant."
                        },
                        new
                        {
                            role = "user",
                            content = message
                        }
                    }
                };
    
                var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(payload));
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    
                var response = await httpClient.PostAsync("https://api.openai.com/v1/chat/completions", content);
                var responseContent = await response.Content.ReadAsStringAsync();
    
                if (response.IsSuccessStatusCode)
                {
                    dynamic jsonResponse = Newtonsoft.Json.JsonConvert.DeserializeObject(responseContent);
    
                    if (jsonResponse.message.role == "assistant" &&
                        jsonResponse.content_filtering.status == "failed")
                    {
                        return ((string)jsonResponse.message.content).Split(' ').Length;
                    }
                }
    
                return null;
            }
        }
    }

Message: "The message did not trigger the Content Filter," it means that the content filter did not detect any issues with the provided message, and the message is considered safe.

消息:“该消息没有触发内容过滤器”,这意味着内容过滤器没有检测到提供的消息有任何问题,因此认为该消息是安全的。

When you use a message like Senstive Information, the content filter is likely to trigger, and the code will then report the number of tokens used.

当你使用像“敏感信息”这样的消息时,内容过滤器很可能会被触发,然后代码会报告使用的令牌数量。

Answer you questions        

Do messages or responses that triggered the Content Filter not use tokens?

Yes, messages or responses that triggered the Content Filter will still use tokens. For example, a simple message like "This is a message that is likely to trigger the Content Filter." will use fewer tokens than a more complex message like "I am writing a blog post about the OpenAI Content Filter and I am wondering if you can provide me with more information about how it works."

是的,触发内容过滤器的消息或响应仍然会使用令牌。例如,像“这是一个很可能触发内容过滤器的消息。”这样的简单消息将比像“我正在写一篇关于OpenAI内容过滤器的博客文章,我想知道你是否能为我提供更多关于它是如何工作的信息。”这样的更复杂消息使用更少的令牌。

If they do use tokens, how many are they using, and where can I get this information?

To get the number of tokens used in a message, you can use the GetContentFilteredMessageTokenUsage. This Method will calculate the number of tokens used in the message by splitting the message content on whitespace.

要获取消息中使用的令牌数量,您可以使用GetContentFilteredMessageTokenUsage方法。此方法将通过按空白字符拆分消息内容来计算消息中使用的令牌数量。

Is the Azure OpenAI Service using Content Safety?

Yes, the Azure OpenAI Service is using Content Safety. Please refer to this 

是的,Azure OpenAI服务正在使用内容安全。请参考这个

Azure AI Content Safety MSDoc

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

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

相关文章

2-101基于matlab的频带方差端点检测

基于matlab的频带方差端点检测&#xff0c;噪声频谱中&#xff0c;各频带之间变化很平缓&#xff0c;语音各频带之间变化较激烈。据此特征&#xff0c;语音和噪声就极易区分。计算短时频带方差&#xff0c;实质就是计算某一帧信号的各频带能量之间的方差。这种以短时频带方差作…

揭秘MySQL主从复制:打造高可用性与数据冗余的强效引擎

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…

从Web2到Web3:探索下一代互联网的无限可能性

互联网经历了从Web1到Web2的重大变革&#xff0c;现在正迈向Web3。Web2通过社交媒体、电子商务和内容平台改变了我们的数字生活&#xff0c;但同时也伴随着中心化平台的垄断和用户数据被广泛控制的问题。而Web3的出现&#xff0c;则试图通过去中心化技术解决这些挑战&#xff0…

人到中年,最清醒的活法—沉浸式做自己

生活中&#xff0c;你是不是常常被这样的事情所困扰&#xff1f; 工作的时候&#xff0c;每天被千头万绪的杂事缠身&#xff0c;看着一堆待完成事项&#xff0c;和工作群里一堆的消息在轰炸你&#xff0c;内心顿感烦躁甚至暴怒。 经常因为领导&#xff0c;同事或者熟人甚至陌生…

java 洛谷题单【算法1-7】搜索

P1219 [USACO1.5] 八皇后 Checker Challenge 解题思路 回溯法 递归与回溯: 从第0行开始&#xff0c;为每个行尝试放置棋子的位置&#xff0c;检查放置是否违反约束条件。如果放置合法&#xff0c;则继续递归处理下一行&#xff08;即下一层递归&#xff09;。如果当前行无法找…

【Go语言】深入解读Go语言中的指针,助你拨开迷雾见月明

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

浅谈提示工程之In-context learning技术

提示工程之In-context learning技术&#xff1b; 通过一张图片围绕下边几个方面进行简单说明 概念起因本质结构注意事项 日常总结

SQL语法学习与实战应用

第一章 引言 1.1 MySQL数据库概述 MySQL&#xff0c;作为一种广泛使用的关系型数据库管理系统&#xff0c;自其问世以来&#xff0c;便凭借开源、高性能及低成本等显著特点&#xff0c;迅速占据了广泛的市场份额。这一系统不仅支持大规模并发访问&#xff0c;更提供了多样化的…

【最新华为OD机试E卷-支持在线评测】绘图机器(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

【ARM】MDK-当选择AC5时每次点击build都会全编译

1、 文档目标 解决MDK中选择AC5时每次点击build都会全编译 2、 问题场景 在MDK中点击build时&#xff0c;正常会只进行增量编译&#xff0c;但目前每次点击的时候都会全编译。 3、软硬件环境 1 软件版本&#xff1a;Keil MDK 5.38a 2 电脑环境&#xff1a;Window 10 4、解决…

新手操作指引:快速上手腾讯混元大模型

引言 腾讯混元大模型是一款功能强大的AI工具&#xff0c;适用于文本生成、图像创作和视频生成等多种应用场景。对于新手用户&#xff0c;快速上手并充分利用这一工具可能会有些挑战。本文将提供详细的新手操作指引&#xff0c;帮助您轻松开始使用腾讯混元大模型。 步骤一&…

kubernetes网络(二)之bird实现节点间BGP互联的实验

摘要 上一篇文章中我们学习了calico的原理&#xff0c;kubernetes中的node节点&#xff0c;利用 calico 的 bird 程序相互学习路由&#xff0c;为了加深对 bird 程序的认识&#xff0c;本文我们将使用bird进行实验&#xff0c;实验中实现了BGP FULL MESH模式让宿主相互学习到对…

个人行政复议在线预约系统开发+ssm论文源码调试讲解

第二章 开发工具及关键技术介绍 2.1 JAVA技术 Java主要采用CORBA技术和安全模型&#xff0c;可以在互联网应用的数据保护。它还提供了对EJB&#xff08;Enterprise JavaBeans&#xff09;的全面支持&#xff0c;java servlet API&#xff0c;JSP&#xff08;java server pages…

Pygame中Sprite实现逃亡游戏2

在《Pygame中Sprite实现逃亡游戏1》中实现了奔跑的玩家&#xff0c;接下来实现显示追赶玩家的飞龙以及对面过来的飞火。 1 显示飞龙 显示飞龙的代码如图1所示。 图1 显示飞龙的代码 其中&#xff0c;第93行代码创建了精灵类MySprite的实例dragon&#xff1b;第94行代码导入飞…

《十年国庆游,洞察中国旅游新趋势》

作者&#xff1a;侯炯 一、十年国庆旅游数据总览 过去十年&#xff0c;中国国庆旅游市场呈现出丰富的变化和强劲的发展态势。从接待游客人次来看&#xff0c;2014 年接待国内游客 4.75 亿人次&#xff0c;到 2019 年已增长至 7.82 亿人次&#xff0c;2023 年国内旅游出游人数更…

如何使用ssm实现新媒体视域下的中国古诗词展演+vue

TOC ssm678新媒体视域下的中国古诗词展演vue 绪论 课题背景 身处网络时代&#xff0c;随着网络系统体系发展的不断成熟和完善&#xff0c;人们的生活也随之发生了很大的变化。目前&#xff0c;人们在追求较高物质生活的同时&#xff0c;也在想着如何使自身的精神内涵得到提…

SpringBoot文档管理系统:架构与功能

第2章相关技术 2.1 Java技术介绍 Java语言擅长开发互联网类应用和企业级应用&#xff0c;现在已经相当的成熟&#xff0c;而且也是目前使用最多的编程语言之一。Java语言具有很好的面向对象性&#xff0c;可以符合人的思维模式进行设计&#xff0c;封装是将对象的属性和方法尽可…

FileLink:企业级跨网文件交换解决方案,效率与安全并存

在数字化转型的时代&#xff0c;企业面临着日益增长的文件交换需求。尤其是在跨网环境中&#xff0c;如何高效、安全地共享文件&#xff0c;成为企业运营的关键。FileLink 正是针对这一需求而生&#xff0c;为企业提供了一个高效、安全的文件交换解决方案。 一、FileLink的核心…

基本定时器的预分频器和技术周期的计算

从表中可见APB1和APB2他们的总线频率和时钟频率则是不一样的 APB1的总线频率是42MHZ 定时器的时钟频率则为84MHZ APB2的总线频率则为84MHZ 定时器则为168MHZ 如我们要使用某个寄存器则我们需要了解他们的定时器的频率则为多少 了解后则进行计算所需要的时间 列如:配置定时…

【CSS in Depth 2 精译_032】5.4 Grid 网格布局的显式网格与隐式网格(上)

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…