Azure OpenAI citations with message correlation

news2024/11/26 10:15:09

题意:“Azure OpenAI 引用与消息关联”

问题背景:

I am trying out Azure OpenAI with my own data. The data is uploaded to Azure Blob Storage and indexed for use with Azure AI search

“我正在尝试使用自己的数据进行 Azure OpenAI。数据已上传到 Azure Blob 存储并为 Azure AI 搜索进行了索引。”

I do a call to the endpoint in the form of POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}, as referenced here.

“我对端点进行了一次调用,形式为 `POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}`,就像这里所引用的。”

However, in the response I cannot figure out how the choices[0]['message']['context']['citations'] field correspond to the choices[0]['message']['content'].

“然而,在响应中,我无法弄清楚 `choices[0]['message']['context']['citations']` 字段是如何与 `choices[0]['message']['content']` 对应的。”

For example, I can have a content as something like:

“例如,我的 `content` 可能是这样的:”

I have a pear [doc1][doc2]. I have an apple [doc1][doc3].

However, in my citations it looks like:

“然而,在我的 `citations` 中,它看起来像这样:”

citations[0].filepath == 'file1.pdf'
citations[1].filepath == 'file2.pdf'
citations[2].filepath == 'file1.pdf'
citations[3].filepath == 'file3.pdf'
citations[4].filepath == 'file4.pdf'

In summary, my question is whether if there is some sort of mapping from doc as shown in the message to the citations.filepath.

“总而言之,我的问题是是否存在一种映射,将消息中显示的 `doc` 与 `citations.filepath` 关联起来。”

问题解决:

Actually, it is not about the length of the citations; it is about how many times the file is referred.

“实际上,这与 `citations` 的长度无关,而是与文件被引用的次数有关。”

If you observe clearly, you can see 'file1.pdf' is referred twice, so mappings will be based on the first appearance and reuse of docs like below:

“如果你仔细观察,可以看到 `file1.pdf` 被引用了两次,因此映射将基于第一次出现和重用文档,如下所示:”

  • doc1 -> citations[0] (file1.pdf).
  • doc2 -> citations[1] (file2.pdf).
  • Reuse of doc1 -> Refers back to the first document (citations[2], file1.pdf).
  • doc3 -> citations[3] (file3.pdf).

Use the code below to get mappings and use it in the content.

“使用下面的代码来获取映射,并在内容中使用它。”

import re

def map_citations(content, citations):
    
    pattern = re.compile(r'\[doc(\d+)\]')
    segments = pattern.split(content)
    
    doc_numbers = []
    for segment in segments:
        if segment.isdigit():
            doc_numbers.append(int(segment))
    
    

    doc_to_file_map = {}
    for i, doc_num in enumerate(doc_numbers):
        doc_to_file_map[f'doc{doc_num}'] = citations[i]['filepath']

    print(doc_to_file_map)
    
    def replace_placeholder(match):
        doc_num = match.group(1)
        return f"[{doc_to_file_map[f'doc{doc_num}']}]"
    
    mapped_content = pattern.sub(replace_placeholder, content)
    
    return mapped_content

content = "I have a pear [doc1][doc2]. I have an apple [doc1][doc3]."
citations = [
    {'filepath': 'file1.pdf'},
    {'filepath': 'file2.pdf'},
    {'filepath': 'file1.pdf'},
    {'filepath': 'file3.pdf'},
    {'filepath': 'file4.pdf'}
]

mapped_content = map_citations(content, citations)
print(mapped_content)

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

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

相关文章

行业应用 | 桥田MMC磁力换模系统-冲压场景案例分享

随着市场竞争的日益加剧,制造形态从单品种大批量转变为多品种小批量,品种的多样化对模具的多样化产生了需求,在更换产品品类时,首先需要更换加工模具。冲压是金属加工中的典型场景,如何缩短冲压模具的更换时间&#xf…

【Hot100】LeetCode—23. 合并 K 个升序链表

目录 1- 思路优先队列 2- 实现⭐23. 合并 K 个升序链表——题解思路 3- ACM 实现 原题连接:23. 合并 K 个升序链表 1- 思路 优先队列 1- 提供的数据结构:ListNode[] lists2- 由于提供的数据结构已经是有序的,不能通过指针实现是因为不知道一…

基于I2S和esp-now协议制作esp32对讲机

基于I2S和esp-now协议制作esp32对讲机 1.概述 这篇文章介绍基于I2S和esp-now协议制作对讲机,他的实现需要在ESP32开发环境的2.0.10版本号下才能成功,高版本号的源码有改动会导致编译失败。 安装ESP32 2.0.10版本: https://brucelong.blog.c…

2 nestjs 设计模式

回顾 MVC MVC(Model-View-Controller)设计模式是一种常用于软件开发的架构模式,旨在分离应用程序的不同部分,使得它们可以独立地开发、测试和维护。它将应用程序分为三个主要组件: Model(模型)…

什么牌子的开放式耳机性价比高?五款高口碑精品推荐!

由于传统入耳式耳机可能对耳道健康造成长期影响,许多人开始偏好选择开放式耳机的非侵入式设计。这种耳机有助于减少耳内湿润、细菌增长,以及耳道闷热的不适感。为了帮助大家在众多产品中挑选合适的开放式耳机,我将列举一些市场反馈良好的款式…

C#中的WebClient与XPath:实现精准高效的Screen Scraping

在现代互联网中,Screen Scraping(屏幕抓取)已成为从网页中提取信息的重要技术。对于C#开发者来说,WebClient和XPath是实现高效抓取的重要工具。本文将概述如何使用C#中的WebClient类结合XPath技术,实现精准高效的Scree…

探索科技潮流新领地厦门凯酷全科技有限公司抖音小店

在这个日新月异的数字时代,科技不仅深刻改变了我们的生活方式,更成为连接消费者与未来生活的桥梁。今天,就让我们一起走进厦门凯酷全科技有限公司的抖音小店,感受一场科技与时尚的完美碰撞,体验未来生活触手可及的魅力…

Python 和 PyCharm 安装(傻瓜式)

为什么要安装Python? 当我们写 python 代码的时候,需要有环境的支持,才可以运行代码。而 python 的安装支持了两个主要部分,分别是解释器和标准库。当我们安装完成,就可以使用python里面的标准库来写代码,而…

Linux 内核源码分析---netfilter 框架

iptables是用户用来管理和配置防火墙规则的一种策略,但是实际解析规则并按照规则实施产生作用的是Netfilter。 iptables 与协议栈内有包过滤功能的 hook 交互来完成工作,这些内核 hook 构成了 netfilter 框架。每个进入网络系统的包(接收和发…

Java Web —— 第七天(Mybatis案例 员工管理2)

新增员工 EmpController类 PostMappingpublic Result save(RequestBody Emp emp){log.info("新增员工操作,emp:{}",emp);empService.save(emp);return Result.success();} EmpServiceImpl实现类 //新增员工Overridepublic void save(Emp emp) {//补充基础属性 创…

jmeter中添加ip欺骗

1、首先在本机电脑中通过配置文件创建添加ip的配置文件,先创建一个txt格式的,直接修改文件名以及后缀为ips.bat 2、编辑该ips.bat文件,在文件中输入如下内容,用于快速给本机添加ip地址,(2,1&…

今年奥运会的场馆设计,竟然藏着这样的黑科技!

随着奥运会的盛大开幕,全球观众不仅关注运动员的精彩表现,也被奥运场馆的壮丽设计所吸引。这些场馆不仅外观炫酷,功能齐全,更重要的是背后应用了一系列先进的技术和材料,其中最为亮眼的就是巴黎奥运会永久性体育场馆之…

“救命快刊”:升到2区,IF3.1,水平低也无俱,专家意见中肯不难为人

1、期刊简介: International Journal of Green Energy • 出版社:Taylor and Francis • 影响因子:3.1 • 期刊分区:JCR2/3区,中科院4区 • 检索数据库:SCI&EI 2、研究领域: 分享了能源…

开源好用的堡垒机工具Jumpserver

Jumpserver是一个由杭州飞致云信息科技有限公司(FIT2CLOUD飞致云)开发的开源堡垒机系统,旨在帮助企业构建和强化运维安全审计能力。 以下是关于Jumpserver的详细介绍: 一、基本概述 定义:Jumpserver是一个开源的堡垒…

CTFshow之RCE代码命令远程执行第53关到第64关详细讲解。可私信!

手眼通天和大人。 --真锅和 引言:今天继续ctf之旅!!解决53关到64关 ps:今天是8.22,重新回归开始填坑,先发个废品 一、实验准备 1、ctf网址:ctf.show 2、工具:fi…

cmd发送邮件:如何通过命令提示符发邮件?

cmd发送邮件的安全性考量?如何设置cmd发送邮件? 通过命令提示符发送邮件则提供了一种便捷且高效的方法,特别是在自动化任务和脚本化工作流程中。AokSend将介绍如何通过命令提示符实现发送邮件,并讨论其应用场景和注意事项。 cmd…

上线一天销售额超15亿!《黑神话:悟空》火爆全网的技术秘诀!

昨日(8月20日)上午,国产游戏《黑神话:悟空》正式发售,在全球游戏市场掀起巨大狂潮!上线第一天在Steam的PCCU(同时在线用户数峰值)排名已成为第三! 此款游戏上线即回本。…

Stable Diffusion【应用篇】【艺术写真】:超高相似度人物换脸写真,IP-Adapter与InstantID完美结合

艺术写真,以其独特的魅力,吸引了无数艺术爱好者和摄影爱好者。如今,借助Stable Diffusion的IP-Adapter和InstantID技术,你只需一键操作,就能轻松实现超高相似度的人物换脸写真。本文将带你深入了解Stable Diffusion的I…

如何建立Pod

文章目录 一、Pod的生命周期建立pod1. 提交 Pod 定义2. API 服务器处理3. 调度4. 节点准备5. 容器初始化6. 启动应用容器7. 持续管理 Pod结束Pod的探针1. 存活探针(Liveness Probe)2. 就绪探针(Readiness Probe)3. 启动探针&#…

Transformer微调实战:通过低秩分解(LoRA)对T5模型进行微调(LoRA Fine Tune)

scient scient一个用python实现科学计算相关算法的包,包括自然语言、图像、神经网络、优化算法、机器学习、图计算等模块。 scient源码和编译安装包可以在Python package index获取。 The source code and binary installers for the latest released version ar…