引言
在开端开发之前,咱们首先要了解咱们将会触摸到的编程言语和组件。我本身是一名Java开发者,尽管也有触摸过C、C++和PHP开发言语,但在工作中运用的并不多。因而,为了本次开发,咱们挑选了Python作为开发言语。大家都是从零开端,只要你有编程常识,就能够和我一起学习。回忆一下咱们需求开发的简易版架构图:
前置常识
接下来,咱们来看一下咱们需求用到的常识点:Python 3.10版本、Git、Embedding、Hugging Face、Milvus、Langchain、OpenAI和Docker Desktop。在开发过程中,咱们将运用Visual Studio Code作为客户端,并装置以下插件:Dev Container和Jupyter。请紧记这些内容,它们都是咱们开发中需求运用到的,这样你就能对开发这个常识库有一个明晰的认识了。
需求掌握
Python:挑选Python 3.10版本是因为我在尝试最新版本时遇到了一些报错,所以我决议下降版本,以确保开发过程尽可能顺利。个人而言,我发现Python具有简洁而高雅的语法,且具有广泛的运用领域,从数据剖析到机器学习都能够运用它进行开发。
Git:假如你只是在本地运转代码而不需求与别人协作,那么可能不需求运用Git。可是,作为一个团队开发东西,Git供给了版本操控和协作功用,能够让多个开发者在同一个项目中进行并行开发,十分方便。
Docker:我对Docker有较多的触摸,所以在这个项目中运用了它。Docker是一个开源的容器化平台,能够经过容器化技能将运用程序和其依赖项打包成一个独立的可移植镜像。运用Docker能够供给一致的开发环境,并且能够轻松布置到不同的服务器上。
Embedding:嵌入是一种常见的机器学习技能,它能够将高维的数据映射到低维空间中,然后提取出数据中的有用特征。在这个项目中,咱们可能会运用嵌入技能来处理文本或图画数据,以便进行后续的剖析和处理。
Hugging Face:Hugging Face是一个活跃的开源社区,供给了许多预练习的模型和东西,能够用于文本生成、情感剖析、问答体系等任务。在这个项目中,咱们会运用Hugging Face的供给的向量模型来完成一些天然言语处理的功用。
Milvus:Milvus是一个开源的向量数据库,专门用于存储和查询大规模的向量数据。它供给了高效的相似度查找和索引构建功用,适用于许多机器学习和数据挖掘任务。在这个项目中,咱们会运用Milvus来存储和查询某些向量数据。就跟咱们的MySQL数据库是一样的,只不过他存储的是向量,而不是咱们的字段数据。
Langchain:当谈到Langchain时,我以为它类似于Java的SDK包或者是util类,它封装了许多API供咱们调用。它的一个显著特点是简单且具有高可读性。这意味着咱们能够轻松地运用Langchain供给的API来完成特定功用,而不需求花费很多的时刻去编写复杂的代码。这样,咱们能够更专注于事务逻辑的完成,而不用过多关注底层完成细节。一起,由于API的可读性高,咱们能够更简单地了解和运用Langchain中供给的各种功用。
OpenAI:它确实是一个十分强壮的平台。在言语模型中,OpenAI练习的模型体现十分出色,能够供给十分挨近实际的答复。这关于聊天机器人、智能帮手等运用十分有价值。经过运用OpenAI的模型,咱们能够得到更准确和天然的答复,总的来说,OpenAI在天然言语处理领域的技能实力不容小觑,关于言语相关的运用开发具有巨大的协助和潜力。
项目简易结构
下面是咱们的目录结构示例,以简单的事务开发流程为基础,你能够依据实际需求进行优化:
.devcontainer:这个文件夹是用来在Visual Studio Code中进行Docker开发的。里面包括一个json文件,用于指定如何构建Docker容器。
.venv:这个文件夹是运转时主动生成的,用于存放运转时编译生成的Python虚拟环境。咱们不需求手动创建或办理它。
volumes:这个文件夹也是在运转时主动生成的,用于存放运转时编译生成的数据卷。咱们不需求手动创建或办理它。
.env:这个文件用于界说环境变量。
.gitattributes:这个文件用于界说Git提交时的一些特点。
.gitignore:这个文件用于界说哪些文件或文件夹不应该被提交到Git库房中。
docker-compose.yaml:这个文件用于界说多个Docker容器的编列装备。
Dockerfile:这个文件用于将当前项目编译成Docker镜像。
main.py:这个文件是咱们实际运转的Python代码。
pyproject.toml:由于Python包的装置对版本依赖性较强,咱们运用了Poetry东西来办理依赖项的装置,而不是运用传统的pip命令。
README.md:这个文件是一个Markdown文件,用于介绍咱们的项目,可是关于项目开发来说不是必需的。
requirements.txt:这个文件用于界说需求装置的Python依赖包,咱们这次不运用它。
untitled.ipynb:这个文件是一个Jupyter Notebook文件,类似于咱们的调试器模型,可是它是逐段履行的。咱们稍后能够仔细研讨它。
下面的一个Python文件是我用来进行测试的,你们不需求关注它。
总结
在这个项目中,咱们将运用Python作为开发言语,结合Hugging Face、Milvus、Langchain、OpenAI等东西和技能,完成一个简易版的架构图。经过嵌入技能处理文本和图画数据,运用Hugging Face的预练习模型进行天然言语处理,运用Milvus作为向量数据库进行存储和查询。一起,咱们还会运用Langchain供给的API来简化开发流程,并借助OpenAI的强壮功用完成更准确和天然的答复。这个项目将协助咱们深化了解各种技能和东西的运用,并供给一个明晰的事务开发流程。