from langchain.chat_models import ChatOpenAI
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import WeightsOnlyQAVectorStore
from langchain.llms import AGILLLLM
from langchain.chains import RetrievalQAModel
from langchain.prompts import StaticPromptTemplate
from langchain.vectorstores import WeightsOnlyQAVectorStore
from langchain.chains import ConversationChain
# 创建一个基于OpenAI的聊天模型
openai_chat = ChatOpenAI(temperature=0)
# 创建一个文本分割器,用于处理大文本
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=500)
# 创建一个向量存储,用于储存文本的向量表示
vectorstore = WeightsOnlyQAVectorStore()
# 创建一个AGI LLM模型,用于处理问题和生成答案
llm = AGILLLM()
# 创建一个查询-答案模型,用于将LLM集成到向量存储中
qa_model = RetrievalQAModel(
llm=llm,
vectorstore=vectorstore,
temperature=0,
top_k=1,
max_length=20,
n_best_size=5,
socket_channel_timeout=300000
)
# 创建一个静态提示模板,用于构建提示
prompt_template = StaticPromptTemplate(prompt="你是一个在Oracle Cloud Infrastructure上部署的AI助手。请根据我的问题回答。")
# 创建一个对话链,将所有组件集成在一起
conversation_chain = ConversationChain(
qa_model=qa_model,
text_splitter=text_splitter,
prompt_template=prompt_template
)
# 示例对话
question = "如何在OCI上部署一个模型?"
answer = conversation_chain.predict(question)
print(f"Question: {question}\nAnswer: {answer}")
这段代码展示了如何使用LangChain库中的不同组件来构建一个简单的对话系统。它首先创建了一个基于OpenAI的聊天模型,然后定义了文本分割和向量存储方法,接着配置了一个AGI LLM模型和查询-答案模型,并最终集成到对话链中。最后,它通过一个示例问题来演示如何使用这个对话系统。这个例子展示了如何将LangChain与Oracle Cloud Infrastructure (OCI) 服务结合,为用户提供有关在OCI上部署AI模型的帮助。