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

简介: 【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推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
3月前
|
机器学习/深度学习 人工智能 人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
409 121
|
3月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
1457 16
构建AI智能体:一、初识AI大模型与API调用
|
3月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
722 47
|
4月前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。
1035 52
|
3月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
500 30
|
3月前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
488 1
|
3月前
|
消息中间件 人工智能 安全
构建企业级 AI 应用:为什么我们需要 AI 中间件?
阿里云发布AI中间件,涵盖AgentScope-Java、AI MQ、Higress、Nacos及可观测体系,全面开源核心技术,助力企业构建分布式多Agent架构,推动AI原生应用规模化落地。
365 0
构建企业级 AI 应用:为什么我们需要 AI 中间件?
|
3月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
3月前
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
317 3

热门文章

最新文章