01:Hello, World!(详细)_Hacker

01:Hello, World!(详细)_Hacker这是一个简单的 nbsp LangChain Hello World 示例 演示如何使用通义千问 API 实现文本生成和问答功能 项目提供了三个通用的模型调用函数 可以满足不同的使用场景 代码示例 https pan baidu com s 1mKYLKGwkaPW pwd yaki 提取码 yaki nbsp nbsp

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



这是一个简单的 LangChain Hello World 示例,演示如何使用通义千问 API 实现文本生成和问答功能。项目提供了三个通用的模型调用函数,可以满足不同的使用场景。

代码示例:

https://pan.baidu.com/s/1mKYLKGwkaPWQZ4NgNFXNdg?pwd=yaki 提取码: yaki

 

 

 

学习目标

了解如何在 LangChain 中使用通义千问 API

掌握基本的文本生成和问答功能

学习如何封装通用的模型调用函数

理解系统提示词的作用

掌握模板化提示词的使用方法

在开始使用 LangChain 和通义千问 API 之前,需要导入必要的模块。以下是代码中使用的 import 语句及其详细说明:

import os

from langchain_community.chat_models import ChatTongyi

from langchain_core.prompts import ChatPromptTemplate

from langchain_core.output_parsers import StrOutputParser

import dashscope

1. import os

作用:Python 标准库,用于访问操作系统功能

本项目中用途:从环境变量中获取 API Key

api_key = os.environ.get(‘DASHSCOPE_API_KEY’)

为什么使用环境变量:

• 安全性:避免将敏感信息(API Key)硬编码在代码中

• 灵活性:可以在不同环境中使用不同的配置

• **实践:符合安全编码规范

2. from langchain_community.chat_models import ChatTongyi

作用:导入 LangChain 社区版中的通义千问聊天模型封装

模块说明:

• langchain_community:LangChain 社区扩展包,包含第三方模型集成

• chat_models:聊天模型模块

• ChatTongyi:通义千问(阿里云)的聊天模型类

本项目中用途:创建通义千问模型实例,用于调用 API

参数说明:

• model_name:模型名称(qwen-turbo/qwen-plus/qwen-max)

• dashscope_api_key:通义千问 API 密钥

3. from langchain_core.prompts import ChatPromptTemplate

作用:导入 LangChain 核心库中的聊天提示词模板类

模块说明:

• langchain_core:LangChain 核心库,包含基础组件

• prompts:提示词模块

• ChatPromptTemplate:聊天提示词模板类

本项目中用途:创建结构化的提示词模板,支持变量替换

优势:

• 支持变量占位符 {variable}

• 类型安全,减少错误

• 易于维护和复用

4. from langchain_core.output_parsers import StrOutputParser

作用:导入 LangChain 核心库中的字符串输出解析器

模块说明:

• langchain_core:LangChain 核心库

• output_parsers:输出解析器模块

• StrOutputParser:字符串输出解析器

本项目中用途:将模型输出解析为纯文本字符串

parser = StrOutputParser()

result = parser.parse(model_output)

或者在链中使用

chain = prompt | llm | StrOutputParser()

result = chain.invoke({“variable”: “value”})

为什么需要解析器:

• 模型输出通常是结构化对象(如 AIMessage)

• 解析器将其转换为可用的格式(如字符串)

• 支持链式调用,简化代码

5. import dashscope

作用:导入阿里云 DashScope SDK

模块说明:

• dashscope:阿里云 DashScope(通义千问)官方 Python SDK

• 提供对通义千问 API 的直接访问

本项目中用途:设置全局 API Key,供 ChatTongyi 使用

为什么需要:

• ChatTongyi 底层依赖 dashscope SDK

• 设置全局 API Key 后,所有调用都会自动使用

• 避免在每个调用中重复传递 API Key

os (标准库)

└── 获取环境变量中的 API Key

dashscope (第三方 SDK)

└── 设置全局 API Key

langchain_community (LangChain 社区版)

└── ChatTongyi (通义千问模型封装)

└── 依赖 dashscope.api_key

langchain_core (LangChain 核心库)

├── ChatPromptTemplate (提示词模板)

└── StrOutputParser (输出解析器)

└── 解析模型输出为字符串

LangChain 支持多种大语言模型,不同的模型提供商有不同的调用方式。本节对比通义千问(阿里云)和 OpenAI 的调用方式。

Import 语句
API Key 设置
import os

import dashscope

api_key = os.environ.get(‘DASHSCOPE_API_KEY’)

dashscope.api_key = api_key模型初始化 llm = ChatTongyi(

model_name=“qwen-turbo”,

dashscope_api_key=api_key

)

支持的模型
调用示例
messages = [(“user”, “你好”)]

response = llm.invoke(messages)

print(response.content)完整示例 from langchain_community.chat_models import ChatTongyi

from langchain_core.prompts import ChatPromptTemplate

from langchain_core.output_parsers import StrOutputParser

import os

import dashscope

api_key = os.environ.get(‘DASHSCOPE_API_KEY’)

dashscope.api_key = api_key

llm = ChatTongyi(model_name=“qwen-turbo”, dashscope_api_key=api_key)

prompt = ChatPromptTemplate.from_template(“请回答:{question}”)

chain = prompt | llm | StrOutputParser()

result = chain.invoke({“question”: “你好”})

print(result)

Import 语句 from langchain_openai import ChatOpenAI API Key 设置 import os

api_key = os.environ.get(‘OPENAI_API_KEY’)

或者直接设置

api_key = “sk-your-api-key-here”模型初始化

llm = ChatOpenAI(

model=“gpt-3.5-turbo”,

api_key=api_key,

temperature=0.7

)

支持的模型
调用示例
messages = [(“user”, “Hello”)]

response = llm.invoke(messages)

print(response.content)完整示例 from langchain_openai import ChatOpenAI

from langchain_core.prompts import ChatPromptTemplate

from langchain_core.output_parsers import StrOutputParser

import os

api_key = os.environ.get(‘OPENAI_API_KEY’)

llm = ChatOpenAI(

model=“gpt-3.5-turbo”,

api_key=api_key,

temperature=0.7

)

prompt = ChatPromptTemplate.from_template(“请回答:{question}”)

chain = prompt | llm | StrOutputParser()

result = chain.invoke({“question”: “你好”})

print(result)

方法一:条件导入
import os

根据环境变量选择模型

model_provider = os.environ.get(‘MODEL_PROVIDER’, ‘qwen’)

if model_provider == ‘qwen’:

from langchain_community.chat_models import ChatTongyi

import dashscope

api_key = os.environ.get(‘DASHSCOPE_API_KEY’)

dashscope.api_key = api_key

llm = ChatTongyi(model_name=“qwen-turbo”, dashscope_api_key=api_key)

elif model_provider == ‘openai’:

from langchain_openai import ChatOpenAI

api_key = os.environ.get(‘OPENAI_API_KEY’)

llm = ChatOpenAI(model=“gpt-3.5-turbo”, api_key=api_key)

result = llm.invoke([(“user”, “你好”)])

print(result.content)

方法二:工厂函数
def create_llm(provider: str = “qwen”):

”““创建大语言模型实例”“”

import os

if provider == “qwen”:

from langchain_community.chat_models import ChatTongyi

import dashscope

api_key = os.environ.get(‘DASHSCOPE_API_KEY’)

dashscope.api_key = api_key

return ChatTongyi(model_name=“qwen-turbo”, dashscope_api_key=api_key)

elif provider == “openai”:

from langchain_openai import ChatOpenAI

api_key = os.environ.get(‘OPENAI_API_KEY’)

return ChatOpenAI(model=“gpt-3.5-turbo”, api_key=api_key)

else:

raise ValueError(f”不支持的模型提供商: {provider}“)

使用

llm = create_llm(“qwen”) # 或 “openai”

result = llm.invoke([(“user”, “你好”)])

print(result.content)

通义千问依赖

pip install langchain langchain-community dashscope

OpenAI 依赖

pip install langchain langchain-openai openai

通用依赖(两者都需要)

pip install langchain langchain-core

选择通义千问的场景

主要使用中文

在国内环境,需要快速访问

成本敏感,希望降低 API 调用费用

需要符合国内数据合规要求

选择 OpenAI 的场景

需要最先进的模型性能

主要使用英文

需要使用 OpenAI 的特定功能(如 GPT-4 的多模态)

项目已经使用 OpenAI 生态

• 三个通用函数:提供不同层次的模型调用接口

• 简单易用:封装复杂细节,提供简洁的 API

• 灵活配置:支持多种模型和参数配置

• 丰富示例:包含 10 个实际应用示例

• 错误处理:内置异常处理机制

功能:最简单的模型调用函数,直接传入文本返回结果

参数:

• prompt_text (str): 输入的提示文本

• model_name (str): 模型名称,默认为 “qwen-turbo”

返回:str - 模型生成的文本响应

支持的模型:

• qwen-turbo - 快速响应,适合简单任务

• qwen-plus - 平衡性能和速度

• qwen-max - 最强性能,适合复杂任务

功能:带系统提示词的模型调用,可以设定 AI 的角色和任务

参数:

• user_text (str): 用户输入的文本

• system_prompt (str): 系统提示词,用于设定角色和任务

• model_name (str): 模型名称,默认为 “qwen-turbo”

返回:str - 模型生成的文本响应

适用场景:角色扮演、专业问答、特定风格生成

功能:使用模板的模型调用,支持变量替换

参数:

• template_str (str): 模板字符串,使用 {variable} 作为占位符

• kwargs: 模板变量的键值对

返回:str - 模型生成的文本响应

适用场景:批量生成、格式化输出、动态提示词

result = call_qwen_with_template(

“请用{style}的风格写一首关于{topic}的诗”,

style=“浪漫”,

topic=“春天”

)

print(result)

# 安装依赖

pip install langchain langchain-community dashscope

设置环境变量

export DASHSCOPE_API_KEY=“your_api_key_here”

# 运行主程序

python 0-hello_world_qwen.py

from 0-hello_world_qwen import call_qwen_model

简单调用

result = call_qwen_model(“你好”)

print(result)

使用不同模型

result = call_qwen_model(“你好”, model_name=“qwen-plus”)

print(result)

选择建议

• 快速测试:使用 call_qwen_model

• 需要特定角色:使用 call_qwen_with_system_prompt

• 需要格式化输出:使用 call_qwen_with_template

• ChatTongyi:通义千问聊天模型封装

• ChatPromptTemplate:提示词模板

• StrOutputParser:字符串输出解析器

# LangChain 消息格式

messages = [

(“system”, “系统提示词”),

(“user”, “用户输入”)

]

# 使用 | 操作符进行链式调用

chain = prompt | llm | StrOutputParser()

result = chain.invoke({“variable”: “value”})

注意事项

1. API Key 安全:不要将 API Key 硬编码在代码中

2. 错误处理:代码已包含基本的异常处理

3. 模型选择:根据任务复杂度选择合适的模型

4. 成本控制:注意 API 调用次数和费用

5. 网络连接:确保网络连接正常

如何扩展功能

1. 添加记忆功能:实现多轮对话记忆

2. 添加流式输出:实现实时输出效果

3. 添加参数验证:增强输入参数的验证

4. 添加日志记录:记录 API 调用历史

5. 添加缓存机制:缓存常见问题的答案

这个 Hello World 示例展示了 LangChain 与通义千问 API 的基本使用方法。通过三个通用函数,你可以快速实现文本生成、问答、角色扮演等功能。示例代码结构清晰,易于理解和扩展,是学习 LangChain 的绝佳起点。

 

小讯
上一篇 2026-04-12 09:47
下一篇 2026-04-12 09:45

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/256278.html