如何使用 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

 运行效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/524005.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c++的学习之路:16、string(3)

上章有一些东西当时没学到,这里学到了将在补充,文章末附上代码,思维导图。 目录 一、赋值重载 二、带模板的创建 三、析构函数 四、代码 五、思维导图 一、赋值重载 这里的赋值重载就是直接利用交换函数进行把传参生成的临时数据和需要…

IDEA中的Debug功能介绍

说明:本文介绍IDEA中的Debug功能,基于2023.2(Ultimate Edition)版本 简单介绍 首先,在程序需要停止的所在行号上,鼠标左键,可设置一个断点,是一个红色圆点标志,表示程序…

2023年下半年中级软件设计师上午真题及答案解析

01 02 03 04 05 06 07 08 09 10 篇幅有限,私我获取免费完整 pdf文件

php反序列化题目

[NewStarCTF 公开赛赛道]UnserializeOne 分析代码,最终需要调用到 file_get_contents 即可获得flag 从后往前分析 触发 __invoke 需要 以调用函数的方式调用一个对象 可以找到Start类 里的__isset中可以将类当作函数调用 所以需要调用到 __isset 就需要 isset()…

Steam上线真人乙游,女性玩家还愿意买单吗?

Steam上线了一款真人乙游《糟糕!他们太爱我了怎么办?》(以下简称《糟糕!)。 乍一听这个游戏名,似乎和《完蛋!我被美女包围了!》有异曲同工之妙,事实也确实如此&#xff…

实现通讯录(顺序表版本)

一、功能要求 (1)⾄少能够存储100个⼈的通讯信息 (2)能够保存⽤⼾信息:名字、性别、年龄、电话、地址等 (3)增加联系⼈信息 (4)删除指定联系⼈ (5&#…

国内:深圳交通流量数据集

数据来源:深圳政府数据开放平台(深圳市政府数据开放平台),这个官网上还有其他类数据集,值得收藏!!! 数据集介绍:宝安区-G4高速西乡大道入口车流量统计 第一行每列的标题…

什么是超导悬浮?工作原理是什么?

某些材料在冷却到某个温度(也称为“临界温度”)以下时会完全失去电阻。 1910 年,一位名叫 Heike Kamerlingh Onnes 的荷兰物理学家发现了这一现象。他注意到低于一定温度时电阻突然下降,然后他大胆地声称发现了一种新的物质状态&a…

字符串处理

读取 先定义: char ch[100];string s; cin>>s或cin>>ch以空格或换行符结束gets(ch);//gets只能读字符数组,不能直接读字符串stringgets和getline会把第一次出现的换行符及先前的字符串读进去(包括空格)&#xff0…

利用Flutter框架实现iOS应用的跨平台发布策略

本文探讨了使用Flutter开发的iOS应用能否上架,以及上架的具体流程。苹果提供了App Store作为正式上架渠道,同时也有TestFlight供开发者进行内测。合规并通过审核后,Flutter应用可以顺利上架。但上架过程可能存在一些挑战,因此可能…

【Linux】正则表达式实验操作实例

正则表达式是一种强大的工具,用于在文本中查找、匹配和替换特定的字符串模式。 实验目的 掌握正则表达式的表达方式掌握grep/egrep命令的用法掌握sed 命令的用法掌握awk命令的用法 正则表达式 实验目的实验内容实验过程创建grep文件来进行如下操作用sed命令完成下列…

HAL STM32 定时器PWM DMA输出方式

HAL STM32 定时器PWM DMA输出方式 🧨遗留问题:当配置RCR重复计数器,配置为2时,在定义了3组PWM参数情况下,只能输出第二组参数的PWM波形。(HAL_TIM_PWM_Start_DMA(&htim1, TIM_CHANNEL_1, aCCValue_Buff…

Java中网络编程,Junit单元测试详解

文章目录 软件结构C/S结构B/S结构 概述三要素IP (银行的位置)端口 (银行中某个柜台号)协议 (填写取款单的规则)TCP通信程序TCP通信原理客户端发送数据服务端接收数据过程图三次握手 Junit单元测试概述常见的注解使用断言概述使用 软件结构 C/S结构 客户…

怀俄明探空站数据解算PWV和Tm

1. Matlab 获取代码可关注公众号WZZHHH回复(怀俄明探空站数据解算PWV和Tm),或者咸鱼关注:WZZHHH123 怀俄明探空站数据解算PWV和Tm: 有关 Matlab 获取代码可关注公众号WZZHHH回复(怀俄明多线程下载&#…

mysql_secure_installation初始化数据库报Access denied

使用mysql_secure_installation配置时出错: 可能输入密码错误,重新复制,粘贴密码。 或者: 登录mysql,设置密码,然后再设置权限。 mysql -u root -p [输入密码] sql>set passwordpassword("newPa…

数据同步工具datax安装配置与示例

文章目录 一、部署步骤1、jdk环境2、python环境步骤一:安装方式一:官网下载安装包方式二:brew命令安装 步骤二:配置环境变量步骤三:验证 3、maven环境(可选) 二、下载安装datax1、下载datax源码…

100 个网络基础知识,看完成半个网络高手

100 个网络基础知识,看完成半个网络高手。 1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层&…

入门微调预训练Transformer模型

大家好,HuggingFace 为众多开源的自然语言处理(NLP)模型提供了强大的支持平台,让这些模型能够通过训练和微调来更好地服务于各种特定的应用场景。在大型语言模型(LLM)迅猛发展的今天,HuggingFac…

配置vscode用于STM32编译,Debug

配置环境参考: Docs 用cubemx配置工程文件,用VScode打开工程文件。 编译的时候会有如下报错: vscode出现process_begin :CreateProcess failed 系统找不到指定文件 解决方案:在你的makefile中加上SHELLcmd.exe就可以了 参考…

数据库系统

三级模式 外模式 数据库的用户使用的局部数据的逻辑结构和特征的描述数据库用户的数据视图,是与某一应用程序有关的数据的逻辑表示。 概念模式 它是数据库中全体数据的逻辑结构和特征的描述;模式是所有用户的公共数据视图。因为数据库是多人共享使用的&…