Programmatically add website content to OpenAI with C#

题意:使用 C# 以编程方式将网站内容添加到 OpenAI。

问题背景:

Our goal is to have a ChatGPT answer questions about our website's content.

我们的目标是让 ChatGPT 回答关于我们网站内容的问题。

We are trying to integrate something similar to a tutorial by Open AI:

我们正在尝试集成类似于 OpenAI 提供的教程的东西

How to build an AI that can answer questions about your website. I've been converting the code from Python to C# and all has been pretty successful so far. In detail we are storing the files in Azure Storage blobs.

如何构建一个可以回答关于你的网站问题的 AI。我已经将代码从 Python 转换为 C#,到目前为止一切都非常成功。详细来说,我们将文件存储在 Azure Storage blobs 中。

As I've gotten to the end of this, I noticed that for every question the embeddings are being sent as the context (pardon if that's not correctly worded). Our website has 5000+ pages with lots of content so I feel like this is not correct to what we want.

在完成这个过程后,我注意到每个问题的上下文都被发送了嵌入(如果表述不准确请见谅)。我们的网站有超过 5000 页的内容,所以我觉得这样做可能不符合我们的需求。

Is there a way in C# to give (or maybe it's called 'train') our model this data once so that questions do not need to continuously provide it for every question? We are using OpenAI and not Azure OpenAI but all the samples I find concerning using my own data are using Azure OpenAI and Azure Cognitive Search, and even then it seems like they are feeding the data for each question.

在 C# 中是否有办法一次性给我们的模型提供这些数据(或许称之为"训练"),这样提问时就不需要每次都提供这些数据?我们使用的是 OpenAI 而不是 Azure OpenAI,但我找到的所有关于使用自己数据的示例都是关于 Azure OpenAI 和 Azure Cognitive Search 的,即便如此,它们似乎还是在每个问题中都提供数据

cs 复制代码
import Azure.AI.OpenAI

var apiKey = "<my api key>";
var client = new OpenAIClient(apiKey);
var prompt = "<question about website>";

var options = new ChatCompletionOptions {
    Messages = {
        new ChatMessage(ChatRole.User, prompt),
    },
    /*
    Not currently working for some reason, further inspection needed;
    - Is it because we need Azure OpenAI instead?;
    Receiving the following error:
        
        - Azure.RequestFailedException: Invalid URL (POST /v1/extensions/chat/completions)
        - Status: 404 (Not Found)


    AzureExtensionsOptions = new AzureChatExtensionsOptions {
        Extensions = {
            new Azure CognitiveSearchExtensionConfiguration {
                SearchEndpoint = new Uri("<my search url>"),
                IndexName = "<my index name>",
                SearchKey = new AzureKeyCredential("<my search key>"),
            }
        }
    }*/
};

var response = await GetChatCompletionsAsync("gpt-3.5-turbo", options);

foreach (var choice in response.Value.Choices) {
    Console.WriteLine(choice.Message.Content);
}

问题解决:

We finally applied for and started using Azure Open AI and Azure Cognitive Search. The results are huge! Results are now in 2-3 seconds.

我们终于申请并开始使用 Azure OpenAI 和 Azure Cognitive Search。结果非常显著!现在结果只需 2-3 秒

相关推荐
新智元2 小时前
LeCun 八年前神预言,大模型路线再颠覆?OpenAI 宣告:强化学习取得稳定性突破
人工智能·openai
探索云原生2 小时前
在 K8S 中创建 Pod 是如何使用到 GPU 的: nvidia device plugin 源码分析
ai·云原生·kubernetes·go·gpu
坐井观老天3 小时前
在C#中使用资源保存图像和文本和其他数据并在运行时加载
开发语言·c#
SimonLiu0095 小时前
[AI]30分钟用cursor开发一个chrome插件
chrome·ai·ai编程
pchmi5 小时前
C# OpenCV机器视觉:模板匹配
opencv·c#·机器视觉
伯牙碎琴6 小时前
智能体实战(需求分析助手)二、需求分析助手第一版实现(支持需求提取、整理、痛点分析、需求分类、优先级分析、需求文档生成等功能)
ai·大模型·agent·需求分析·智能体
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭7 小时前
C#都可以找哪些工作?
开发语言·c#
boligongzhu9 小时前
Dalsa线阵CCD相机使用开发手册
c#
向宇it21 小时前
【从零开始入门unity游戏开发之——C#篇23】C#面向对象继承——`as`类型转化和`is`类型检查、向上转型和向下转型、里氏替换原则(LSP)
java·开发语言·unity·c#·游戏引擎·里氏替换原则