大模型应用开发-LangChain入门教程
简介:本文讲解如何使用LangChain来构造大模型应用。
LangChain简介
LangChain是一个编程框架,主要用于在应用程序中集成大型语言模型(LLM)。LangChain提供了记忆组件,用于解决大语言模型无状态的问题,使得模型能够保存上次交互的内容,从而能够更好地进行连续的对话或任务处理。
此外,LangChain还提供了多种类型的Chain类,用于处理不同的任务。其中,通用Chain类用于控制Chain的调用顺序和是否调用,它们可以用来合并构造其他的Chain。具体Chain类则承担了具体的某项任务,例如LLMChain专门用于针对语言模型LLM的查询,可以格式化prompt以及调用语言模型。
入门案例
openAI版本
- 获取接口
- 首先需要进入openAI官网,查看自己的接口。
- 创建接口
- 创建成功之后就有密钥了
- 编写代码
在最新版的LangChain教程中,取消了直接使用key的方式,要把key先配置成环境变量,然后调用,自己的电脑的环境变量才能够运行,提高了安全性。
- 配置环境变量
import os import openai # 假设 open_api_key 是一个环境变量名,而不是API密钥本身 open_api_key_env_var = "openAI-key" # 最好使用有意义的环境变量名 openai_api_key = os.environ.get(open_api_key_env_var) # 确保API密钥已设置 if not openai_api_key: raise ValueError(f"Environment variable {open_api_key_env_var} is not set.") # 初始化OpenAI客户端 client = openai.Client(api_key=openai_api_key) def get_completion(prompt, model="gpt-3.5-turbo"): # 使用传入的prompt构建消息列表 messages = [{"role": "user", "content": prompt}] try: # 调用API并传入参数 response = client.chat.completions.create( model=model, messages=messages, ) # 从响应中提取聊天完成的内容 return response.get("choices", [{}])[0].get("message", {}).get("content", "") except Exception as e: # 异常处理 print(f"An error occurred: {e}") return None # 使用函数示例 prompt_text = "Hello, how are you?" result = get_completion(prompt_text) print(result)
运行这个代码想要成功,必须要自己的openai账户有钱,才可以,但是正常情况下,大家也充值不了,所以只能够采取代理的方法了。
代理版本
通过下面的链接:https://referer.shadowai.xyz/r/1005029就可以进入代理版本,注册代理接口。
- 再点击使用文档就可以看见详细的教程了
- 编写代码
from openai import OpenAI client = OpenAI( base_url='https://api.openai-proxy.org/v1', api_key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', ) chat_completion = client.chat.completions.create( messages=[ { "role": "user", "content": "Say hi", # 我要问的问题 } ], model="gpt-3.5-turbo", ) # 获取choices列表中的第一个元素(通常只有一个choice) choice = chat_completion.choices[0] # 从choice中获取message对象 message = choice.message # 获取message的内容 content = message.content # 打印内容 print(content)
- 运行结果
可以看出已经运行成功了,这样我们就可以训练一个属于自己的大模型应用了,或者把接口整合到自己的网站中。