如何使用 langchain 与 openAI 连接

上一篇写了如何安装 langchain

https://www.cnblogs.com/hailexuexi/p/18087602

这里主要说一个 langchain的使用

创建一个目录 langchain  ,在这个目录下创建两个文件

main.py   

这段python代码,用到了openAI,需要openAI及FQ。这里只做为示例

# -*- coding: utf-8 -*-
from langchain.text_splitter import RecursiveCharacterTextSplitter

#rom langchain.embeddings import OpenAIEmbeddings
from langchain_community.embeddings import OpenAIEmbeddings

#from langchain.vectorstores import Chroma
from langchain_community.vectorstores import Chroma

from langchain.chains import RetrievalQA

#from langchain.chat_models import ChatOpenAI
from langchain_community.chat_models import ChatOpenAI

#from langchain.document_loaders import TextLoader
from langchain_community.document_loaders import TextLoader

from langchain_community.llms import Tongyi

import os
import openai

import warnings
warnings.filterwarnings('ignore', category=FutureWarning)

os.environ['OPENAI_API_KEY'] = 'sk-*******************************'             
os.environ['OPENAI_API_BASE'] = 'https://api.openai.com/v1'
os.environ["DASHSCOPE_API_KEY"] = "sk-*************************"

def run():
    loader = TextLoader('qa.txt')
    data = loader.load()
 
    text_splitter = RecursiveCharacterTextSplitter(chunk_size= 50, chunk_overlap = 0)
    all_splits = text_splitter.split_documents(data)                                                
                                                                                                    
    vectorstore = Chroma.from_documents(documents=all_splits, embedding=OpenAIEmbeddings())         
                                                                                                
    while True:                                                                                     
        print("请输入问题,例如:弦丝画制作的活动时长是多少?")                                     
        query = input("请输入:")                                                                    
        if "end" == query:                                                                          
            break                                                                                   
        question = query                                                                            
        print(f"问题:{question}")                                                                  
                                                                                                   
#        llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
        llm = Tongyi()
        qa_chain = RetrievalQA.from_chain_type(llm, retriever=vectorstore.as_retriever())           
        ret = qa_chain({"query": question})                                                         
        print(f"回答:{ret['result']}")                                                             
if '__main__' == __name__:
    run()

qa.txt   

这个文件 用于存放 问答对

问题:弦丝画制作的活动时长是多少?
答案:弦丝画制作活动时长是2—3小时。
问题:用弦丝画制作福字是多少元一位?
答案:用弦丝画制作福字、旺字等单字款价格120元/人。
问题:用弦丝画制作旺字是多少元一位?
答案:用弦丝画制作福字、旺字等单字款价格120元/人。
问题:用弦丝画制作喜字是多少元一位?
答案:用弦丝画制作福字、旺字等单字款价格120元/人,其他图案款请咨询详谈。
问题:端午节香囊的制作价格是多少元一位?
答案:端午节香囊价格100元/人。
问题:中秋节月饼的制作价格是多少元一位?
答案:中秋节月饼价格120元/人。

运行 main.py

 提示没有 模块openai  

安装 openai

 再次运行 main.py  ,提示没有安装 chromadb

 安装 chromadb

 再次运行提示没有安装 tiktoken   

 安装 tiktoken

 运行效果

 

posted @ 2024-03-21 16:42  海乐学习  阅读(528)  评论(0编辑  收藏  举报