Azure OpenAI citations with message correlation

题意:"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` 可能是这样的:"

cs 复制代码
I have a pear [doc1][doc2]. I have an apple [doc1][doc3].

However, in my citations it looks like:

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

cs 复制代码
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.

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

cs 复制代码
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)
相关推荐
大志若愚YYZ2 小时前
兴趣爱好——虾哥开源小智AI机器人搭建(丐版—最低成本)ESP32开发板 MicroPython V1.0.0 Rev1
ai·小智
机器之心3 小时前
好莱坞特效师展示AI生成的中文科幻大片,成本只有330元
人工智能·openai
十二测试录4 小时前
AI 驱动研发变革:技术突破与行业落地实践全景
人工智能·ai·aigc
m0_603888715 小时前
HumanPCR Probing MLLM Capabilities in Diverse Human-Centric Scenes
ai·论文速览
用什么都重名20 小时前
《GPT-OSS 模型全解析:OpenAI 回归开源的 Mixture-of-Experts 之路》
人工智能·大模型·openai·gpt-oss
Baihai_IDP21 小时前
OpenAI 开源模型 gpt-oss 是在合成数据上训练的吗?一些合理推测
开源·llm·openai
新智元1 天前
刚刚,GPT-5 Pro 自证全新数学定理!OpenAI 总裁直呼颠覆,大佬们集体转发
人工智能·openai
新智元1 天前
28 岁华人执掌 1.85 万亿科技巨头 AI 大权!一觉醒来,图灵奖得主也要向他汇报
人工智能·openai
机器之心1 天前
字节开源Seed-OSS-36B模型,512k上下文
人工智能·openai
CF14年老兵1 天前
🤯 AI写代码比人类便宜99.9%!但这就是真相吗?
openai·全栈·trae