这篇文章主要讲LangChain中ChatOpenAI和OpenAI的不同,代码完全是在B站 LangChain入门 - ChatOpenAI与OpenAI究竟有何不同?看到的,代码在GitHub上也有Difference between ChatOpenAI and OpenAI
其他相关链接:
LangChain Quickstart
LangChain OpenAI functions
OpenAI Model Review
概要:
Langchain封装的模型主要分为如下两类:
- 大语言模型 (LLM):主要是文本补全模型(text completion models),如davinci、curie、babbage、ada等比较老的模型。接受字符串作为输入。其提供支持的endpoint为 /v1/completions/ 。
- 对话模型 (Chat Models):即聊天模型,以gpt-4、gpt-3.5系列为代表。接受列表messages(消息类型:AIMessage, HumanMessage, SystemMessage, FunctionMessage, ChatMessage,其中前三者为常用类型)作为输入。其提供支持的endpoint为 /v1/chat/completions/。
下面是代码:
! pip install langchain openai --quiet --upgrade
! pip install langchain_community
from langchain import LLMMathChain, OpenAI, SerpAPIWrapper, SQLDatabase #SQLDatabaseChain
from langchain.agents import initialize_agent, Tool, AgentType
from langchain.chat_models import ChatOpenAI
import os
对话模型
chat = ChatOpenAI(
temperature = 0,
model = "gpt-3.5-turbo",
openai_api_base = "your url", # 换成代理,一定要加 v1
openai_api_key = "api-key"
)
# ChatOpenAI需要传入的是一个数组(messages)
from langchain.schema import (
SystemMessage,
HumanMessage,
AIMessage
)
messages = [
HumanMessage(content="Hi AI, how are you today?"),
]
chat(messages)
大语言模型
llm = OpenAI(
temperature=0,
# model_name='text-davinci-002',
# openai_api_base = "your url", # 换成代理,一定要加 v1
# openai_api_key = "your api-key"
)
llm('Hi AI, how are you today?')