您现在的位置是:网站首页> AI人工智能
FastGPT、RAGFlow知识库搭建平台
- AI人工智能
- 2025-11-12
- 299人已阅读
FastGPT、RAGFlow知识库搭建平台
1.文本分块 → 向量生成 → 存入 Qdrant(向量数据库)
2.用户提问 → 向量化->向量数据库检索 → 生成回答

LangChain.NET如何调用Ollama制作知识库和调用MCP服务
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);
}