您现在的位置是:网站首页> AI人工智能

FastGPT、RAGFlow知识库搭建平台

摘要

FastGPT、RAGFlow知识库搭建平台

1.文本分块 → 向量生成 → 存入 Qdrant(向量数据库)

2.用户提问 → 向量化->向量数据库检索 → 生成回答

1.jpg



LangChain.NET如何调用Ollama制作知识库和调用MCP服务

C#调用Ollama配合向量数据库做知识库

AI知识库原理

AI搭建知识库技术收集

FastGPT开源地址

RAGFlow开源地址



AI知识库原理

详细代码原理点击查看

1.文本分块 → 向量生成 → 存入 Qdrant(向量数据库)

简化代码:

// 初始化知识库(分块 → 生成向量 → 存入 Qdrant)

    public async Task InitializeAsync(string documentPath)

    {

        var chunks = LoadAndChunkDocument(documentPath);

        Console.WriteLine($"文档分块完成,共 {chunks.Count} 块");

        // 生成每个块的向量

        var chunksWithVectors = new List<(string, float[])>();

        foreach (var chunk in chunks)

        {

            var vector = await _embeddingGenerator.GenerateEmbeddingAsync(chunk);

            chunksWithVectors.Add((chunk, vector));

        }

// 存入 Qdrant

        await _qdrantService.InsertKnowledgeChunksAsync(chunksWithVectors);

        Console.WriteLine("知识库已存入 Qdrant 向量数据库");

    }

2.用户提问 → 向量化->向量数据库检索 → 生成回答

简化代码:

static async Task Main(string[] args)

    {

        // 1. 初始化知识库(首次运行时执行,后续可注释)

        var initializer = new KnowledgeBaseInitializer();

        await initializer.InitializeAsync("knowledge_base.txt"); // 替换为你的知识库文档路径


        // 2. 处理用户提问

        var userQuestion = "Ollama 支持哪些模型?"; // 示例问题


        // 3. 生成问题向量并检索相似知识库块

        var embeddingGenerator = new EmbeddingGenerator();

        var questionVector = await embeddingGenerator.GenerateEmbeddingAsync(userQuestion);

        var qdrantService = new QdrantService();

        var relevantChunks = await qdrantService.SearchSimilarChunksAsync(questionVector, topK: 3);


        // 4. 调用 Ollama 生成回答

        var ollamaClient = new OllamaLlmClient();

        var answer = await ollamaClient.GenerateAnswerAsync("llama3", userQuestion, relevantChunks);


        // 5. 输出结果

        Console.WriteLine("\n===== 问题 =====");

        Console.WriteLine(userQuestion);

        Console.WriteLine("\n===== 回答 =====");

        Console.WriteLine(answer);

    }






Top