11 构建的第一个LangChain程序
在上一篇中,我们探讨了LangChain的基本语法和结构,了解了如何定义代码块、使用变量和控制流等基本概念。在这一篇中,我们将通过一个实际的实例来构建你的第一个LangChain程序,并展示如何运行它。
通过这个例子,你可以了解如何使用 LangChain 构建的应用程序。
LangChain案例之A股股票实时交易助手
在这个例子中,我们将构建一个A股股票实时交易数据分析助手应用,它包含以下特性:
- 多步骤链:首先是 1) 数据预处理,2) 生成提示,3) 调用外部 API,4) 后处理。
- 外部数据集成:模拟从外部 API 或数据库中获取信息,并在处理过程中使用。
- 条件逻辑:根据用户输入动态调整助手的行为。
1) 获取A股股票数据 (stock_data.py
)
首先,通过 Tushare 或其他 API 获取实时股票交易数据,输入参数包括 ts_code
和 src
(数据源,默认 sina 或 dc)。
A股交易数据获取,可以通过Tushare,API注册入口地址如下:
https://tushare.pro/register?reg=712458
注册成功后,看到你专属的接口Token:
这个模块专门负责从 Tushare 获取股票数据。
pip安装tushare包,然后按照下面方法获取某只股票数据:
# stock_data.py
import tushare as ts
# 设置 Tushare token
ts.set_token('你的token')
# 获取实时股票数据的函数
def fetch_stock_data(ts_code, src='sina'):
stock_data = ts.realtime_tick(ts_code=ts_code, src=src)
formatted_data = "\n".join([f"{row['TIME']} {row['PRICE']} {row['CHANGE']} {row['VOLUME']} {row['AMOUNT']} {row['TYPE']}" for row in stock_data])
return formatted_data
2 生成提示模板 (prompt_template.py
)
这个模块负责定义 LangChain 的提示模板。
# prompt_template.py
from langchain.prompts import PromptTemplate
# 定义 LangChain 的 PromptTemplate
prompt_template = """
请分析以下股票实时成交数据,提供价格变动、成交量等关键指标的变化趋势:
{data}
输出分析结果,包括:
- 交易时间
- 当前价格及变化
- 成交量及成交金额
- 类型(买盘/卖盘/中性)
"""
3. 模块 3:OpenAI 语言模型 (openai_llm.py
)
这个模块负责创建 OpenAI 的 LLM 实例。
# openai_llm.py
from langchain.llms import OpenAI
# 创建 OpenAI LLM 实例,并设置温度为 0.5
def create_openai_llm(api_key):
return OpenAI(temperature=0.5, api_key=api_key)
4. 数据分析链 (data_analysis_chain.py
)
这个模块将所有其他模块结合起来,运行整个数据分析流程。
# data_analysis_chain.py
from langchain.chains import SimpleChain
from stock_data import fetch_stock_data
from prompt_template import prompt_template
from openai_llm import create_openai_llm
# 创建 SimpleChain 并将 LLM 和提示模板传入
def create_analysis_chain(api_key):
llm = create_openai_llm(api_key)
simple_chain = SimpleChain(llm=llm, prompt=prompt_template)
return simple_chain
# 执行股票数据分析
def run_analysis(stock_code, api_key):
# 获取股票数据
stock_data = fetch_stock_data(stock_code)
# 创建分析链并运行
simple_chain = create_analysis_chain(api_key)
return simple_chain.run(data=stock_data)
5. 主程序 (main.py
)
最后,在主程序中调用所有模块来执行完整的工作流。
# main.py
from data_analysis_chain import run_analysis
# 设置 Tushare 和 OpenAI API 密钥
stock_code = '600000.SH' # 示例股票代码
api_key = '你的API密钥' # OpenAI API 密钥
# 执行分析并获取结果
response = run_analysis(stock_code, api_key)
# 打印分析结果
print("实时成交数据分析:")
print(response)
总结:
stock_data.py
:负责获取实时股票数据。prompt_template.py
:定义 LangChain 的提示模板。openai_llm.py
:创建和返回带有温度设置的 OpenAI 实例。data_analysis_chain.py
:组合各个模块,创建分析链,并执行数据分析。main.py
:主程序,调用data_analysis_chain.py
中的函数来执行整个流程。
使用 LangChain 可以帮助你更高效地集成外部 API 和分析模型,简化代码结构并提高灵活性。