【大模型实战】基于大模型的中国历史智能助手项目分享:史小白

2024-08-27 18:52

本文主要是介绍【大模型实战】基于大模型的中国历史智能助手项目分享:史小白,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、简介

在当下的AI热潮中,我完成了一个基于大模型的项目——史小白 - 中国历史智能助手

 可用于帮助用户探索和学习中国历史。项目基于InternLM大模型技术,提供了多种功能,包括:

  • 历史问答:用户可以提出中国历史相关的问题,史小白将提供详细且准确的回答。
  • 文言文翻译:能够将古代文献翻译成现代汉语,方便用户理解文言文。
  • 联网检索:对于最新的事情,史小白也可以通过搜索引擎得到答案。
  • 中国古风图片生成:根据用户的需求生成具有中国古代风格的图片,增强历史学习的趣味性。

通过整合现代人工智能技术,史小白致力于为历史爱好者提供一个便捷的学习平台。

 在我的B站视频【史小白 - 中国历史智能助手】中,我详细展示了项目架构、功能模块以及实际运行效果。希望通过这个视频,能够启发更多开发者利用AI技术做出有趣的项目。欢迎大家观看、一键三连~

【大模型项目】史小白——中国历史智能助手

二、效果展示

2.1 自我认知

2.2 文言文翻译

2.3 RAG检索效果

2.4 联网查询效果

2.5 画图Agent

三、相关技术

3.1 数据准备

在这个模块,系统支持多种数据格式,包括:

  • Markdown、PDF、Word、音频、视频等多种媒体类型
  • JSON、HTML等结构化数据
  • 多语言的内容

这些多模态、多语言的数据会通过嵌入模型(Embedding Model)进行处理,生成对应的语义向量(Semantic Vector)。这个向量代表了数据的内容及其含义,便于后续的搜索和查询。

生成的语义向量被存储到向量数据库中,供之后的数据检索使用。数据库不仅支持存储,还可以进行高效的向量化数据检索。

3.2 数据检索

在这一部分,用户输入一个问题,例如“我想了解秦朝的政治制度?”。这个问题首先会被转化为一个查询向量。查询向量是通过嵌入模型处理问题文本生成的。

系统通过对比查询向量和数据库中的语义向量,找出与问题最相关的知识点。这个过程会返回一个相关性分数,用以确定哪个知识点最符合用户的查询。

根据相关性分数,系统会选择最合适的知识,并返回相关的答案,例如“秦朝的政治制度以中央集权为基础……”等。

3.3 大模型生成

大模型生成模块史小白(基于InternLM 2.5 7b),它在回答用户问题时使用了多个工具和方法:

  • Agent工具(基于LAgent):它可以帮助系统执行联网查询和古风图片生成等任务。用户的问题如果涉及到网络查询,系统可以调用联网工具进行实时信息检索;如果用户需要生成古风图片,系统可以调用图片生成工具。
  • 数据微调(基于Xtuner):大模型的输出经过数据微调,确保生成的内容更加符合特定任务的需求。
  • 任务定制(Prompt):通过定制化的任务提示词,进一步优化和指导模型的输出。

最后,史小白将结合所有查询结果、数据微调和定制化提示词,生成用户需要的答案。

四、致谢

感谢InternLM团队举办的书生大模型实战营(第三期闯关大挑战)!

GitHub地址:https://github.com/colorfulandcjy0806/shixiaobai

OpenXLab地址:OpenXLab浦源 - 模型中心

这篇关于【大模型实战】基于大模型的中国历史智能助手项目分享:史小白的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112497

相关文章

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统