You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#向OpenAI导入网站内容,实现无需重复传参的问答?

关于OpenAI网站问答AI的C#实现问题解答

一、非Azure OpenAI能否一次性导入/训练5000+页面数据?

  • 不可以。原生OpenAI API(非Azure)不支持直接导入并持久化大规模私有数据的embeddings,也无法直接基于私有数据进行模型微调来适配问答场景(微调仅支持特定场景,且不适用于5000+页面的通用问答需求)。
  • 正确的优化方案是使用向量数据库:
    1. 预先将所有页面内容转换为embeddings,存储到第三方向量数据库(如Pinecone、Weaviate等)。
    2. 用户提问时,先将提问转换为embedding,再到向量数据库中检索最相关的Top N条上下文内容。
    3. 仅将检索到的相关上下文与提问一起传入OpenAI的Chat Completion接口,避免发送全部5000+页面的embeddings。
  • 这是OpenAI官方针对大规模文档问答场景推荐的标准方案,能有效降低token消耗并提升响应效率。

二、Azure扩展配置404错误的原因

  • 是的,AzureChatExtensionsOptions这类扩展功能仅适配Azure OpenAI服务,原生OpenAI API不存在/v1/extensions/chat/completions这个接口端点,因此会返回404错误。
  • 若不使用Azure OpenAI,需自行实现检索逻辑:先调用OpenAI的Embedding接口生成提问的embedding,再调用向量数据库的检索接口获取相关上下文,最后将上下文与提问组装成prompt后调用Chat Completion接口。

修正后的代码示例(核心逻辑框架)

using Azure.AI.OpenAI;
using Azure;

var apiKey = "<my api key>";
var client = new OpenAIClient(apiKey, new OpenAIClientOptions { Endpoint = new Uri("https://api.openai.com/v1") });
var userQuestion = "<question about website>";

// 1. 生成提问的embedding
var embeddingOptions = new EmbeddingsOptions
{
    Input = new List<string> { userQuestion },
    Model = "text-embedding-ada-002"
};
var embeddingResponse = await client.GetEmbeddingsAsync(embeddingOptions);
var questionEmbedding = embeddingResponse.Value.Data[0].Embedding.ToArray();

// 2. 从向量数据库检索相关上下文(替换为你的向量DB实际调用逻辑)
var relevantContexts = await YourVectorDatabaseClient.SearchSimilarDocuments(questionEmbedding, topN: 5);
var combinedContext = string.Join("\n\n", relevantContexts.Select(doc => doc.Content));

// 3. 组装prompt并调用Chat Completion
var chatOptions = new ChatCompletionOptions
{
    Messages = 
    {
        new ChatMessage(ChatRole.System, "你是一个基于给定上下文回答问题的助手,仅使用提供的上下文信息进行回答。"),
        new ChatMessage(ChatRole.User, $"上下文:\n{combinedContext}\n\n问题:{userQuestion}")
    },
    Model = "gpt-3.5-turbo"
};
var chatResponse = await client.GetChatCompletionsAsync(chatOptions);

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

内容的提问来源于stack exchange,提问作者RoLYroLLs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:57:18