目录
目录
为什么LLM应用很重要?
LLM应用程序的关键组件
选择正确的工具
逐步实施
1。设置Python及其环境
2。安装所需的依赖项
3。导入所有依赖关系
4。环境设置
5。代理设置
6。简化UI
7.运行应用程序
结论
常见问题
首页 科技周边 人工智能 构建您的第一个LLM应用程序:初学者的教程

构建您的第一个LLM应用程序:初学者的教程

Jun 24, 2025 am 10:13 AM

您是否曾经尝试过建立自己的大型语言模型(LLM)应用程序?有没有想过人们如何提高自己的LLM申请来提高生产率? LLM应用程序已被证明在各个方面都有用。现在,构建一个LLM应用程序已在每个人的范围内。多亏了AI模型以及强大的框架的可用性。在本教程中,我们将以最简单的方式构建第一个LLM应用程序。让我们开始过程。我们将一次从想法到代码再部署一个过程中深入研究每个过程。

目录

  • 为什么LLM应用很重要?
  • LLM应用程序的关键组件
  • 选择正确的工具
  • 逐步实施
    • 1。设置Python及其环境
    • 2。安装所需的依赖项
    • 3。导入所有依赖关系
    • 4。环境设置
    • 5。代理设置
    • 6。简化UI
    • 7.运行应用程序
  • 结论
  • 常见问题

构建您的第一个LLM应用程序:初学者的教程

为什么LLM应用很重要?

LLM应用程序的独特之处在于他们使用自然语言来处理用户并以自然语言做出响应。此外,LLM应用程序了解用户查询的上下文并相应地回答。 LLM应用程序的常见用例是聊天机器人,内容生成和问答代理。它通过合并了当今AI景观的驱动力来对话性AI,从而对用户体验产生了重大影响。

LLM应用程序的关键组件

创建LLM应用程序涉及我们创建LLM应用程序不同组件的步骤。最后,我们使用这些组件来构建一个成熟的应用程序。让我们一一了解它们,以彻底了解每个组件。

  1. 基础模型:这涉及选择您将在后端应用程序中使用的基础AI模型或LLM。将其视为应用程序的大脑。
  2. 及时工程:这是提供有关应用程序的LLM上下文的最重要组成部分。这包括定义LLM的语气,个性和角色,以便可以相应地回答。
  3. 编排层: Langchain,LlamainDex之类的框架充当编排层,该层处理您的所有LLM呼叫和输出。这些框架将您的应用程序用LLM绑定,以便您可以轻松访问AI模型。
  4. 工具:工具在构建LLM应用程序时充当最重要的组件。 LLM通常使用这些工具来执行AI模型无法直接执行的任务。

选择正确的工具

选择正确的工具是创建LLM应用程序的最重要任务之一。人们经常跳过此过程的这一部分,并开始使用任何可用工具从头开始构建LLM应用程序。这种方法很模糊。在进入开发阶段之前,应该有效地定义工具。让我们定义我们的工具。

  1. 选择LLM: LLM充当您应用程序背后的思想。选择合适的LLM是一个关键的步骤,请牢记成本和可用性参数。您可以使用OpenAI,Groq和Google的LLMS。您必须从其平台收集一个API密钥才能使用这些LLM。
  2. 框架:该框架充当您的应用程序和LLM之间的集成。它可以帮助我们简化提示到LLM的提示,从而定义了应用程序的工作流程。诸如Langchain和Llamaindex之类的框架被广泛用于创建LLM应用程序。 Langchain被认为是最友好型,最容易使用的。
  3. 前端库: Python为您的最小代码中的应用程序构建前端提供了良好的支持。诸如简化,Gradio和Chainlit之类的库具有为您的LLM应用程序提供优美的前端的功能,并需要最少的代码。

逐步实施

我们涵盖了构建LLM应用程序的所有基本先决条件。让我们迈向实际实现,并编写用于从头开始开发LLM应用程序的代码。在本指南中,我们将创建一个LLM应用程序,该应用程序将查询作为输入,将查询分为子部分,搜索Internet,然后将结果编译为带有所使用的引用的好看的Markdown报告。

1。设置Python及其环境

第一步是从其官方网站下载Python解释器并将其安装在系统上。在安装时,不要忘记在系统选项中勾选/选择“添加路径变量”

另外,请确认您已通过在命令行中键入Python来安装Python。

2。安装所需的依赖项

此步骤将库依赖项安装到您的系统中。打开终端并输入以下命令以安装依赖项。

 PIP安装简化dotenv langchain langchain-openai-langchain-community langchain-core

此命令将运行终端并安装所有依赖项以运行我们的应用程序。

3。导入所有依赖关系

安装依赖项后,请转到IDE代码编辑器(例如VS代码),然后在必需的路径中打开它。现在,创建一个python文件“ app.py”,然后粘贴以下导入语句

导入简报为ST

导入操作系统

来自dotenv import load_dotenv

来自langchain_openai进口chatopenai

来自langchain_community.tools.tavily_search导入tavilySearchResults

来自langchain.oxent intiment agentexecutor,create_tool_calling_agent

来自langchain_core.prompts导入chatprompttemplate,MessagsPlaceHolder

来自langchain_core.messages进口Aimessage,人类

4。环境设置

我们为LLM和其他工具创建了一些环境变量。为此,使用环境变量在同一目录中创建一个文件“ .env” ,并在其内部粘贴API键。例如,在我们的LLM应用程序中,我们将使用两个API键:我们的LLM的OpenAI API键,可以从此处访问,而Tavily API密钥将用于实时搜索Internet,可以从此处访问。

 openai_api_key =“ your_api_key”

tavily_api_key =“ your_api_key”

现在,在您的app.py中,编写以下代码。此代码将将所有可用环境变量直接加载到您的工作环境中。

 #---环境设置---

load_dotenv()

OpenAI_API_KEY = OS.GEGENV(“ OpenAI_API_KEY”)

tavily_api_key = os.getenv(“ tavily_api_key”)

如果不是Openai_api_key:

   St.Error(“未找到?openai api密钥。请在.env文件(OpenAI_API_KEY ='sk -...。')中设置它

如果不是Tavily_api_key:

   St.Error(“找不到tavily api键。

如果不是openai_api_key或不tavily_api_key:

   St.Stop()

5。代理设置

当我们加载了所有环境变量时。让我们创建代理工作流程,每个查询在使用LLM应用程序时都会通过这些查询。在这里,我们将创建一个工具,即tavely搜索,可以搜索Internet。代理执行人将使用工具执行代理。

 #---代理设置---

@st.cache_resource

def get_agent_executor():

   ”“”
 
   初始化并返回Langchain代理执行人。

   ”“”

   #1。定义LLM

   llm = chatopenai(型号=“ gpt-4o-mini”,温度= 0.2,api_key = openai_api_key)

   #2。定义工具(简化声明)

   工具= [

       tavilySearchResults(

           max_results = 7,

           名称=“ web_search”,

           api_key = tavily_api_key,

           描述=“执行Web搜索以查找当前信息”

       )

   这是给出的

   #3。更新的提示模板(v0.3最佳实践)

   提示_template = chatprompttemplate.from_messages(

       [

           (“系统”, ”””

           您是世界一流的研究助理AI。通过降价引用提供全面,准确的答案。

           过程:

           1。将问题解除为子查询

           2。为每个子查询使用`web_search`

           3。综合信息

           4。使用Markdown脚注引用来源

           5。包括参考列表

           后续问题应使用聊天历史上下文。

           ””),

           MessagesPlaceholder(“ chat_history”,可选= true),

           (“人类”,“ {input}”),

           MessagesPlaceHolder(“ Agent_scratchpad”),

       这是给出的

   )

   #4。创建代理(已更新为create_tool_calling_agent)

   代理= create_tool_calling_agent(llm,工具,提示_template)

   #5。具有现代配置的代理商

   返回代理商(

       代理=代理,

       工具=工具,

       详细= true,

       handing_parsing_errors = true,

       max_iterations = 10,

       return_intermediate_steps = true

   )

在这里,我们使用的是一个指示GPT-4O-Mini LLM的提示模板,如何进行搜索部分,并用参考来编译报告。本节负责您的LLM应用程序的所有后端工作。本节中的任何更改都将直接影响您的LLM应用程序的结果。

6。简化UI

我们已经为LLM应用程序设置了所有后端逻辑。现在,让我们为应用程序创建UI,这将负责我们应用程序的前端视图。

 #---简化UI ---

st.set_page_config(page_title =“ AI研究代理?”,page_icon =“?”,layout =“ wide”)

St.MarkDown(“”

<style>

   .stChatMessage {

       border-radius: 10px;

       padding: 10px;

       margin-bottom: 10px;

   }

   .stChatMessage.user {

       background-color: #E6F3FF;

   }

   .stChatMessage.assistant {

       background-color: #F0F0F0;

   }

   </style>

“”,unsafe_allow_html = true)

圣提特(“?AI研究代理”)

St.Caption(“您的高级AI助手搜索网络,合成信息并提供引用的答案。”)

如果“ chat_history”不在st.Session_state中:

   st.Session_state.chat_history = []

对于St.Session_state.Chat_History中的Message_obj:

   角色=“用户”如果isInstance(message_obj,humanMessage)else“助手”

   使用St.Chat_message(角色):

       St.MarkDown(Message_obj.Content)

user_query = st.chat_input(“问一个研究问题...”)

如果User_query:

   st.Session_state.chat_history.append(humanMessage(content = user_query))

   使用St.Chat_message(“用户”):

       St.MarkDown(user_query)

   与St.Chat_message(“助手”):

       与圣斯皮纳(“?思考与研究...”):

           尝试:

               agent_executor = get_agent_executor()

               响应= agent_executor.invoke({

                   “输入”:user_query,

                   “ chat_history”:st.Session_state.chat_history [: -  1]

               }))

               答案=响应[“输出”]

               st.Session_state.chat_history.append(aimessage(content = anders))

               圣马克郡(答案)

           除例外为E:

               error_message = f“?歉意,发生错误:{str(e)}”

               st.error(error_message)

               打印(F“代理调用期间的错误:{e}”)

在本节中,我们将定义应用程序的标题,标题,描述和聊天历史记录。 Sparlit为自定义我们的应用程序提供了许多功能。我们在此处使用了有限数量的自定义选项,以使我们的应用程序不那么复杂。您可以自由根据需要自定义应用程序。

7.运行应用程序

我们已经为应用程序定义了所有部分,现在已经准备好启动了。让我们从视觉上查看我们创建的内容并分析结果。

打开您的终端和类型

简化运行app.py

这将初始化您的应用程序,您将被重定向到默认浏览器。

构建您的第一个LLM应用程序:初学者的教程

这是您的LLM应用程序的UI:

构建您的第一个LLM应用程序:初学者的教程

让我们尝试测试我们的LLM应用程序

查询“最新的Langchain文档版本是什么?”

构建您的第一个LLM应用程序:初学者的教程

查询“ Langchain如何改变AI的游戏?”

构建您的第一个LLM应用程序:初学者的教程

从输出来看,我们可以看到我们的LLM应用程序正在显示预期的结果。带有参考链接的详细结果。任何人都可以单击这些参考链接以访问我们LLM回答问题的上下文。因此,我们成功地创建了有史以来的第一个LLM应用程序。随意更改此代码并创建一些更复杂的应用程序,将此代码作为参考。

结论

创建LLM应用程序比以往任何时候都变得容易。如果您正在阅读本文,则意味着您有足够的知识来创建自己的LLM应用程序。在本指南中,我们讨论了设置环境,编写了代码,代理逻辑,定义了应用程序UI,并将其转换为简化应用程序。这涵盖了开发LLM应用程序的所有主要步骤。尝试尝试及时的模板,LLM链和UI自定义,以根据您的需求进行个性化应用程序。这只是开始;富有的AI工作流正在等待您,具有代理,内存和特定领域的任务。

常见问题

Q1。我需要从头开始训练模型吗?

答:不,您可以从预先训练的LLM(例如GPT或开源LLM)开始,重点介绍及时设计和应用逻辑。

Q2。为什么要使用Langchain之类的框架?

答:他们简化了链接提示,处理内存和集成工具,而无需重新发明轮子。

Q3。如何添加对话记忆?

答:在框架(例如,兰班)中使用缓冲存储器类或集成矢量数据库以进行检索。

Q4。什么是抹布,为什么使用它?

答:检索增强的生成将外部数据带入了模型的上下文中,从而提高了特定于域特异性查询的响应精度。

Q5。我在哪里可以部署我的LLM应用程序?

答:从使用Gradio的本地演示开始,然后使用拥抱的面部空间,简化云,Heroku,Docker或云平台进行扩展。






以上是构建您的第一个LLM应用程序:初学者的教程的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

AI投资者停滞不前? 3条购买,建造或与人工智能供应商合作的战略途径 AI投资者停滞不前? 3条购买,建造或与人工智能供应商合作的战略途径 Jul 02, 2025 am 11:13 AM

投资蓬勃发展,但仅资本还不够。随着估值的上升和独特性的衰落,以AI为中心的风险投资的投资者必须做出关键决定:购买,建立或合作伙伴才能获得优势?这是评估每个选项和PR的方法

AGI和AI超级智能将严重击中人类天花板的假设障碍 AGI和AI超级智能将严重击中人类天花板的假设障碍 Jul 04, 2025 am 11:10 AM

让我们来谈谈。 对创新AI突破的分析是我正在进行的AI中正在进行的福布斯列覆盖的一部分,包括识别和解释各种有影响力的AI复杂性(请参阅此处的链接)。 前往Agi和

Kimi K2:最强大的开源代理模型 Kimi K2:最强大的开源代理模型 Jul 12, 2025 am 09:16 AM

还记得今年早些时候破坏了Genai行业的大量开源中国模型吗?尽管DeepSeek占据了大多数头条新闻,但Kimi K1.5是列表中的重要名字之一。模型很酷。

未来预测从AI到AGI的道路上的大规模情报爆炸 未来预测从AI到AGI的道路上的大规模情报爆炸 Jul 02, 2025 am 11:19 AM

让我们来谈谈。 对创新AI突破的分析是我正在进行的AI中正在进行的福布斯列覆盖的一部分,包括识别和解释各种有影响力的AI复杂性(请参阅此处的链接)。对于那些读者

Grok 4 vs Claude 4:哪个更好? Grok 4 vs Claude 4:哪个更好? Jul 12, 2025 am 09:37 AM

到2025年中期,AI“军备竞赛”正在加热,XAI和Anthropic都发布了他们的旗舰车型Grok 4和Claude 4。这两种模型处于设计理念和部署平台的相反端,但他们却在

推理模型的思想链可能无法长期解决 推理模型的思想链可能无法长期解决 Jul 02, 2025 am 11:18 AM

例如,如果您向模型提出一个问题,例如:“(x)人在(x)公司做什么?”您可能会看到一个看起来像这样的推理链,假设系统知道如何检索必要的信息:找到有关CO的详细信息

批处理处理与深度学习的迷你批次培训 批处理处理与深度学习的迷你批次培训 Jun 30, 2025 am 09:46 AM

深度学习通过允许机器在我们的数据中掌握更多深入的信息来彻底改变了AI领域。深度学习能够通过复制我们的大脑通过神经元SYNA的逻辑来做到这一点

这家初创公司在印度建立了一家医院来测试其AI软件 这家初创公司在印度建立了一家医院来测试其AI软件 Jul 02, 2025 am 11:14 AM

临床试验是药物开发中的巨大瓶颈,Kim和Reddy认为他们在PI Health建立的AI-Spainite软件可以通过扩大潜在符合条件的患者的库来更快,更便宜。但是

See all articles