AI大模型企业应用实战(07)-LangChain的Hello World项目

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 【8月更文挑战第7天】

1 创建一个LLM

  • 自有算力平台+开源大模型(需要有庞大的GPU资源)企业自己训练数据
  • 第三方大模型API(openai/百度文心/阿里通义千问...)数据无所谓

让LLM给孩子起具有中国特色的名字。

在LangChain中最基本的功能就是根据文本提示来生成新的文本

使用方法:predict

生成结果根据你调用的模型不同而会产生非常不同的结果差距,并且你的模型的tempurature参数也会直接影响最终结果(即LLM的灵敏度)。

2 自定义提示词模版

  • 将提问的上下文模版化
  • 支持参数传入

让LLM给孩子起具有美国特色的名字。

将提示词模版化后会产生很多灵活多变的应用,尤其当它支持参数定义时。

使用方法

langchain.prompts

3 输出解释器

  • 将LLM输出的结果各种格式化
  • 支持类似json等结构化数据输出

让LLM给孩子起4个有中国特色的名字,并以数组格式输出而不是文本。

与chatGPT只能输出文本不同,langchain允许用户自定义输出解释器,将生成文本转化为序列数据使用方法:

langchain.schema

第一个实例

让LLM以人机对话的形式输出4个名字

名字和性别可以根据用户输出来相应输出

输出格式定义为数组

4 开始运行

4.1 引入openai key

设置环境变量:

import os
os.environ["OPENAI_API_KEY"] = "xxx"
# 为了科学上网,所以需要添加
os.environ["OPENAI_PROXY"] = "xxx"

从环境变量读取:

import openai
import os
openai.api_base =os.environ.get("OPENAI_PROXY")
openai.api_key = os.environ.get("OPENAI_API_KEY")
print("OPENAI_API_KEY:", openai_api_key)
print("OPENAI_PROXY:", openai_api_base)

4.2 运行前查看下安装情况

! pip show langchain
! pip show openai

4.3 openai 官方SDK

import openai
import os

openai.api_base =os.environ.get("OPENAI_PROXY")
openai.api_key = os.environ.get("OPENAI_API_KEY")

messages = [
{
   
   "role": "user", "content": "介绍下你自己"}
]

res = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=messages,
    stream=False,
)
print(res['choices'][0]['message']['content'])

4.4 使用langchain调用

from langchain.llms import OpenAI
import os

api_base =os.environ.get("OPENAI_PROXY")
api_key = os.environ.get("OPENAI_API_KEY")

llm = OpenAI(
    model="gpt-3.5-turbo",
    temperature=0,
    openai_api_key=api_key,
    openai_api_base=api_base
    )
llm.predict("介绍下你自己")

4.5 起名大师demo

from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
import os
api_base =os.environ.get("OPENAI_PROXY")
api_key = os.environ.get("OPENAI_API_KEY")

llm = OpenAI(
    model="gpt-3.5-turbo-instruct",
    temperature=0,
    openai_api_key=api_key,
    openai_api_base=api_base
    )
prompt = PromptTemplate.from_template("你是一个起名大师,请模仿示例起3个{county}名字,比如男孩经常被叫做{boy},女孩经常被叫做{girl}")
message = prompt.format(county="中国特色的",boy="狗蛋",girl="翠花")
print(message)
llm.predict(message)

格式化输出

from langchain.schema import BaseOutputParser
#自定义class,继承了BaseOutputParser
class CommaSeparatedListOutputParser(BaseOutputParser):
    """Parse the output of an LLM call to a comma-separated list."""


    def parse(self, text: str):
        """Parse the output of an LLM call."""
        return text.strip().split(", ")

CommaSeparatedListOutputParser().parse("hi, bye")
['hi', 'bye']

完整案例

#起名大师,输出格式为一个数组
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
import os
from langchain.schema import BaseOutputParser

#自定义类
class CommaSeparatedListOutputParser(BaseOutputParser):
    """Parse the output of an LLM call to a comma-separated list."""

    def parse(self, text: str):
        """Parse the output of an LLM call."""
        print(text)
        return text.strip().split(",")


api_base = os.getenv("OPENAI_API_BASE")
api_key = os.getenv("OPENAI_KEY")
llm = OpenAI(
    model="gpt-3.5-turbo-instruct",
    temperature=0,
    openai_api_key=api_key,
    openai_api_base=api_base
    )
prompt = PromptTemplate.from_template("你是一个起名大师,请模仿示例起3个具有{county}特色的名字,示例:男孩常用名{boy},女孩常用名{girl}。请返回以逗号分隔的列表形式。仅返回逗号分隔的列表,不要返回其他内容。")
message = prompt.format(county="美国男孩",boy="sam",girl="lucy")
print(message)
strs = llm.predict(message)
CommaSeparatedListOutputParser().parse(strs)
['jack', ' michael', ' jason']
相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
9月前
|
存储 人工智能 前端开发
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
本文介绍如何利用Qoder、阿里云ADB Supabase和通义千问图像编辑模型,快速搭建AI手办生图Flutter应用。无需传统后端,实现从前端生成到数据存储、AI服务集成的全链路敏捷开发,展现Vibe Coding的高效实践。
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
|
9月前
|
人工智能 缓存 运维
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
本文介绍联调造数场景下的AI应用演进:从单Agent模式到多Agent协同的架构升级。针对复杂指令执行不准、响应慢等问题,通过意图识别、工具引擎、推理执行等多Agent分工协作,结合工程化手段提升准确性与效率,并分享了关键设计思路与实践心得。
1382 20
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
|
9月前
|
存储 人工智能 搜索推荐
LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
本文介绍基于LangGraph构建的双层记忆系统,通过短期与长期记忆协同,实现AI代理的持续学习。短期记忆管理会话内上下文,长期记忆跨会话存储用户偏好与决策,结合人机协作反馈循环,动态更新提示词,使代理具备个性化响应与行为进化能力。
1648 10
LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
|
9月前
|
人工智能 IDE 开发工具
从6人日到1人日:一次AI驱动的客户端需求开发实战
从6人日到1人日:一次AI驱动的客户端需求开发实战
从6人日到1人日:一次AI驱动的客户端需求开发实战
|
9月前
|
数据采集 人工智能 JSON
Prompt 工程实战:如何让 AI 生成高质量的 aiohttp 异步爬虫代码
Prompt 工程实战:如何让 AI 生成高质量的 aiohttp 异步爬虫代码
|
9月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
10月前
|
人工智能 Java API
Java AI智能体实战:使用LangChain4j构建能使用工具的AI助手
随着AI技术的发展,AI智能体(Agent)能够通过使用工具来执行复杂任务,从而大幅扩展其能力边界。本文介绍如何在Java中使用LangChain4j框架构建一个能够使用外部工具的AI智能体。我们将通过一个具体示例——一个能获取天气信息和执行数学计算的AI助手,详细讲解如何定义工具、创建智能体并处理执行流程。本文包含完整的代码示例和架构说明,帮助Java开发者快速上手AI智能体的开发。
3488 8
|
9月前
|
人工智能 自然语言处理 搜索推荐
营销智能体 AI 平台:技术人告别营销需求返工的实战手册
技术人常陷营销琐事:改文案、调接口、算数据。营销智能体AI平台并非“营销玩具”,而是为技术减负的利器。它将内容生成、投放优化、数据复盘自动化,无缝对接现有系统,提升效率2倍以上。落地需避三坑:勿贪全、勿求完美、紧扣业务需求。让技术专注核心,告别重复搬运。
317 0
|
9月前
|
自然语言处理 数据挖掘 关系型数据库
ADB AI指标分析在广告营销场景的方案及应用
ADB Analytic Agent助力广告营销智能化,融合异动与归因分析,支持自然语言输入、多源数据对接及场景模板化,实现从数据获取到洞察报告的自动化生成,提升分析效率与精度,推动数据驱动决策。
|
9月前
|
人工智能 JSON 前端开发
实战教程:构建能交互网页的 AI 助手——基于 Playwright MCP 的完整项目
本项目构建一个智能网页操作助手,结合AI与Playwright实现自然语言驱动的网页自动化。支持登录、填表、数据提取等复杂操作,采用Node.js + React全栈架构,集成Anthropic Claude模型,打造高效、可扩展的自动化解决方案。

热门文章

最新文章