PyLMKit(6):大模型使用(API型和本地开源模型)

日期:2023-12-6

PyLMKit目前集成了LLM模型有两种类型:

  • API付费调用型
  • 本地开源模型下载部署

1.API型LLM模型使用教程

1.1.申请 API KEY

根据你想使用的大模型的官网,注册账号,并申请API KEY,如果需要付费调用,那么还需要进行充值或开通相应服务。

1.2.配置 API KEY

(1)一个方便的方法是创建一个新的.env文件,并在其中配置所有的API密钥信息,从而方便地使用不同的模型。.env文件的格式如下:

python 复制代码
openai_api_key = ""  # OpenAI

QIANFAN_AK = ""  # 百度-千帆
QIANFAN_SK = ""

DASHSCOPE_API_KEY = ""  # 阿里-通义

spark_appid = ""  # 科大讯飞-星火
spark_apikey = ""
spark_apisecret = ""
spark_domain = "generalv3"  # generalv2

zhipu_apikey = ""  # 清华-智谱AI

baichuan_api_key = ""  # 百川
baichuan_secret_key = ""

hunyuan_app_id = ""  # 腾讯-混元
hunyuan_secret_id = ""
hunyuan_secret_key = ""

加载.env文件的方法如下(建议将.env文件放置在与您运行的.py文件相同的路径下)。

python 复制代码
from dotenv import load_dotenv

# load .env
load_dotenv()

(2)另一种方法是通过os.environ进行配置,下面是一个例子:

python 复制代码
import os


# openai
os.environ['openai_api_key'] = ""

# 百度
os.environ['qianfan_ak'] = ""
os.environ['qianfan_sk'] = ""

1.3.模型调用

PyLMKit支持两种调用方式:

  • 普通模式:invoke(query)
  • 流式模式:stream(query)

其中,query表示用户输入内容,简单例子如下:

python 复制代码
from pylmkit.llms import ChatQianfan  # 百度-千帆
from pylmkit.llms import ChatSpark  # 讯飞-星火
from pylmkit.llms import ChatZhipu  # 清华-智谱
from pylmkit.llms import ChatHunyuan  # 腾讯-混元
from pylmkit.llms import ChatBaichuan  # 百川
from pylmkit.llms import ChatTongyi  # 阿里-通义
from pylmkit.llms import ChatOpenAI  # OpenAI
from dotenv import load_dotenv


# 加载 .env
load_dotenv()
# 加载模型
model = ChatQianfan()

# 普通模式
res = model.invoke(query="如何学习python?")
print(res)

# 流式模式
res = model.stream(query="如何学习python?")
for i in res:
    print(i)

2.本地开源LLM模型部署和调用

2.1.开源模型下载

本案例采用一个很小的模型作为例子,让大多数人都能成功运行这个Demo。这个Demo在CPU环境也能成功运行,并且内存占用小,模型名称为 Qwen/Qwen-1_8B-Chat,更多

模型名称,可以去魔搭社区去找相应的模型,链接:魔搭社区-文本生成

预先安装 modelscope 依赖包

bash 复制代码
pip install modelscope

下载指定开源模型

python 复制代码
from pylmkit.llms import LocalLLMModel

LocalLLMModel(model_path='Qwen/Qwen-1_8B-Chat',  # 模型名称
              tokenizer_kwargs={"revision": 'master'},  
              model_kwargs={"revision": 'master'},
              language='zh',  # zh 表示使用国内环境下载,速度快
)

下载好的效果如下:

2.2.拷贝文件夹到指定位置

将下载模型及文件拷贝到自己想要的位置。一般采用上述下载方式,模型都会下载缓存到 C 盘,缓存的位置一般在:C:\Users\你的用户名\.cache\modelscope\hub

将刚刚下载的qwen/Qwen-1_8B-Chat文件夹剪切保存到 D:/mycode_llm/ (这里举个例子,可以自定义)路径下,主要避免文件太大占满 C 盘。

2.3.安装该开源模型的依赖库

这一步骤很重要,一方面要保证你的CUDA环境配置正确、内存足够,即硬件资源得够(当然,CPU环境也可以跑一些模型);另一方面则需要到开源模型的github或者根据其它教程,安装依赖包和推理加速等依赖文件。

一般在下载的模型文件夹里,会有一个README.md文件,这是一个关于模型基本信息和安装的说明书,不懂安装依赖库的同学可以详细参照着这个教程来安装,比如Qwen/Qwen-1_8B-Chat文件夹内容截图如下:

这个步骤做好了,下一步骤才能正确运行模型,不然可能会遇到大量BUG,那么这个时候就需要一个一个排查和解决。

2.4.加载本地模型并使用

python 复制代码
from pylmkit.llms import LocalLLMModel


model = LocalLLMModel(model_path='D:/mycode_llm/qwen/Qwen-1_8B-Chat',  # 前面保存的模型文件路径
                      tokenizer_kwargs={"revision": 'master'},
                      model_kwargs={"revision": 'master'},
                      language='zh'
                      )

# 普通模式
res = model.invoke(query="如何学习python?")
print(">>>invoke ", res)

# 流式模式
res = model.stream(query="如何学习python?")
for i in res:
    print(">>>stream ", i)

效果如下

相关推荐
雪球小梦30 分钟前
OpenAI掌舵人解读OpenAI新进展:迈向超级智能。
人工智能·chatgpt
IPdodo全球网络服务32 分钟前
ChatGPT 网络配置问题解决方案
网络·chatgpt
冻感糕人~12 小时前
使用LangChain、CrewAI、AutoGen搭建数据分析Agent
人工智能·windows·ai·数据分析·langchain·大模型·agent
weixin_307779131 天前
Python的Langchain库的功能及实现代码
人工智能·python·langchain
hellocode_1 天前
如何评价deepseek-V3 VS OpenAI o1 自然语言处理成Sql的能力
人工智能·gpt·ai·chatgpt
AWM巴卡2 天前
如何稳定使用 O1 / O1 Pro,让“降智”现象不再困扰?
python·gpt·ai·chatgpt·软件工程·o1 pro
Yunlord2 天前
(十)提示词任务分解的策略探讨
深度学习·chatgpt·prompt
Yunlord2 天前
2025年伊始:回顾 ChatGPT 引发的 AI 变革以及未来展望
人工智能·chatgpt
CJenny2 天前
LangChain 学习笔记
笔记·学习·langchain
MichaelIp3 天前
LLM大语言模型中RAG切片阶段改进策略
人工智能·python·语言模型·自然语言处理·chatgpt·embedding·word2vec