在前文的学习中,我们已经初步了解了大模型的API,但是对于配置本地环境还是有心无力。在此给出面向新手的教程,帮助同学们配置本地环境。
注:本文非常非常非常非常啰嗦,是给小白写的
以下是概要步骤:
-
向大模型的官网注册账号并申请自己的API KEY (此时的API KEY只是一个钥匙,你还需要申请具体的模型才能能用,钥匙只是起到在传输过程中的保密作用)
-
申请模型 (按自己的需求来选择模型,合适自己需求的模型才是最好的。从前文来看,主要分为三个方面:TPM,RPM,money。颇有家资直接上OpenAI就好了)
-
配置本地环境变量 (需要配置base_url,model_endpoint,api_key,偷懒的话就一个api_key就够了)
-
配置python/javascript的运行环境 (教程给出的示例代码是python,所以笔者也只给出了python的环境配置)
-
测试 (测试一下有没有配好)
事不宜迟,我们马上开始:
向大模型的官网注册账号并申请自己的API KEY
第一步:打开[火山大模型的官网](https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint/detail?Id=ep-20241104194726-s56mj&Tab=api)(话说掘金这个插入链接怎么时好时坏的,转文档好不方便)第二步:点击手机号登陆,转到如下界面:
注册/登录手机号即可
第三步:转到API KEY管理界面,并进行如下操作:
操作成功会弹出如下弹窗,点击创建即可:
页面自动转到如下界面:
创建API KEY成功!
申请模型
笔者在写到这里的时候才被人提醒AI练中学里有操作文档,那就直接偷图好了(感恩由鸿铭8588),省的一个一个截屏。在控制台的 在线推理页面 中创建推理接入点,推荐使用doubao-pro-32k作为主力模型,模型部署完成后即可获得模型的base_url和model_endpoint
至此,我们已经获得了base_url(模型所在的网址), model_endpoint(模型的类别), api_key(传输数据过程中用来保密的锁的钥匙)。
配置本地环境变量
因为我们在日常交流代码的过程中常常会暴露自己的代码,所以我们的代码中最好不要有什么隐秘。api_key就属于这种隐秘,一旦流失,你的模型就会被他人有意无意中使用了。将其配置在本地环境变量中是个不错的选择。
如果你是在Linux环境下编辑环境变量的话,就按自己的机器来配,可能是profile或者environment之类的文件。
本教程只提供了Windows 11环境下编辑环境变量,如下:
1.按一下你键盘上的win键,然后直接在搜索栏中搜索“编辑系统环境变量”(纯小白向)。
2.照着红色箭头点就行:
这里的“变量值”填我们之前申请的API KEY:
你还需要根据上述操作解决你的API_URL的配置,它的变量值就是你的base_url。
这样我们的环境变量就解决了。
配置python/ javascript的运行环境
如果你之前没有用过conda的话,我强烈建议你用conda来管理你的**python环境****。**因为conda是一个很好的环境管理工具,它可以很方便地帮助你区分不同功能的库,比如你用python做爬虫可以用爬虫环境,用python做数据分析可以用数据分析环境。这样的好处就在于你打包的文件不会因为你的解释器很大而占据不必要的存储空间。直接在anaconda上下载,我就默认大家会用了。(不会用也没关系,直接在pycharm上配置环境也是一样)
细心的同学可能已经在火山大模型的官网上看到了,火山大模型也是支持OpenAI这个库的。两者的标准是兼容的,所以我就先用anaconda_prompt安装火山引擎官方提供的库,然后再在pycharm上演示如何安装OpenAI的库。毕竟我们课程的示例代码是以OpenAI库为主。
火山方舟 v3 API 与 OpenAI API 协议兼容,您可以使用火山引擎官方 SDK,也可以使用 OpenAI SDK 或其他兼容 OpenAI API 协议的多语言社区 SDK 调用火山方舟推理服务。第三方 SDK 不由火山引擎团队维护,仅供参考
1.打开anaconda_prompt,创建环境
conda create --name LangChainLearning python=3.8
输个‘y’,小等一会。
2.激活环境,开始下载要用到的第三方库
conda activate LangChainLearning
下载火山引擎官方提供的库
pip install volcengine-python-sdk
这个库比较大,下载时间比较长
3.检查
看一下自己下载成功了没,列一下环境:
conda list
这样子就是成功了。
4.后续库的安装
这部分我将在pycharm中演示,前面的安装有问题也可以转到pycharm中进行。
这部分是在导入我们的conda环境到pycharm中。
按箭头点就行
下面演示一下如何在pycharm中给我们的conda环境添加第三方库,需要添加openai、langchain、httpx,cryptography等库(这一部分主要看你的运行代码,如果缺失库,代码会给你报错,你照着装就行):
**测试**
掏出课程给我们提供的代码01-04import os
from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage
os.environ["OPENAI_API_KEY"] = os.environ.get("API_KEY")
os.environ["OPENAI_BASE_URL"] = os.environ.get("API_URL")
chat = ChatOpenAI(model='ep-20241104194726-s56mj', temperature=0.8, max_tokens=600)
messages = [
SystemMessage(content="你是一个很棒的智能助手"),
HumanMessage(content="请给我的花店起个名"),
]
response = chat(messages)
print(response)
返回似乎不太妙:
C:\Users\23246\PycharmProjects\pythonProject1\.venv\Scripts\111.py:14: LangChainDeprecationWarning: The method `BaseChatModel.__call__` was deprecated in langchain-core 0.1.7 and will be removed in 1.0. Use invoke instead.
response = chat(messages)
content='以下是一些适合花店的名字,你可以根据喜好进行选择:
**一、浪漫风格**
1. **花漾恋语**
- “花漾”描绘出花朵盛开、充满活力的样子,就像花朵在水中荡漾开来的美丽姿态。“恋语”则给人一种浪漫、充满爱意的感觉,暗示着花店的花适合用来表达爱情。
2. **星梦花坊**
- “星”代表着梦幻、美好和遥远的憧憬,“梦”也增添了一种虚幻而迷人的氛围。花坊里的花就像星空中闪烁的星星一样,能点亮人们的梦想和生活中的浪漫时刻。
3. **玫瑰之约花屋**
- 玫瑰是爱情的象征,“之约”有一种约定、约会的浪漫感觉。这个名字明确地表达出花店与玫瑰以及浪漫爱情的紧密联系,容易吸引那些想要购买玫瑰表达爱意的顾客。
**二、清新自然风格**
1. **绿萌花艺**
- “绿”代表着生机与自然,让人联想到绿叶,是花朵生长不可或缺的元素。“萌”有萌发、新生的意思,也给人一种可爱、清新的感觉,适合主打自然清新风格的花店。
2. **清逸花居**
- “清逸”表示清新、飘逸,传达出一种如同在清晨的花园中,微风轻拂花朵,花朵散发着淡雅香气的意境。“花居”则有一种温馨的家的感觉,让顾客感受到花店的亲切。\n3. **晨露花源**
- “晨露”是清晨花朵上晶莹剔透的水珠,象征着清新和纯净。“花源”表示花的源头,暗示着这里的花如同从最纯净、最自然的源头而来,充满了生机和活力。
**三、文艺风格**
1. **墨染花笺**
- “墨染”有一种古典、文艺的气息,仿佛是用墨汁晕染出的一幅画卷。“花笺”是古代用来写诗作画的精美纸张,这里将花与笺联系起来,寓意着花如同写在笺纸上的美丽诗篇。
2. **花影诗韵**
- 这个名字融合了花的影子和诗歌的韵味。花影摇曳是一种很美的景象,而诗韵则增添了花店的文化内涵,适合那些想要营造文艺氛围,吸引文艺青年顾客的花店。
3. **梵花小筑**
- “梵”字带有一种宁静、超凡脱俗的感觉,与花相结合,给人一种在喧嚣世界中寻找宁静与美好的意境。“小筑”则有一种精致、小巧而温馨的感觉,像是一个文艺的小天地。' additional_kwargs={'refusal': None} response_metadata={'token_usage': {'completion_tokens': 598, 'prompt_tokens': 26, 'total_tokens': 624, 'completion_tokens_details': None, 'prompt_tokens_details': None}, 'model_name': 'doubao-pro-32k-240828', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None} id='run-11a3ed85-680f-474e-a23a-4fa154b1693e-0' usage_metadata={'input_tokens': 26, 'output_tokens': 598, 'total_tokens': 624}
Process finished with exit code 0
省流:__call__函数被弃用了,但是还能有正常返回
下面是我的环境,大家可以对着来
# Name Version Build Channel
aiohappyeyeballs 2.4.3 pypi_0 pypi
aiohttp 3.10.10 pypi_0 pypi
aiosignal 1.3.1 pypi_0 pypi
annotated-types 0.7.0 pypi_0 pypi
anyio 4.5.2 pypi_0 pypi
async-timeout 4.0.3 pypi_0 pypi
attrs 24.2.0 pypi_0 pypi
ca-certificates 2024.9.24 haa95532_0
certifi 2024.8.30 pypi_0 pypi
cffi 1.17.1 pypi_0 pypi
charset-normalizer 3.4.0 pypi_0 pypi
colorama 0.4.6 pypi_0 pypi
cryptography 43.0.3 pypi_0 pypi
cryptograpy 0.0.0 pypi_0 pypi
distro 1.9.0 pypi_0 pypi
exceptiongroup 1.2.2 pypi_0 pypi
frozenlist 1.5.0 pypi_0 pypi
greenlet 3.1.1 pypi_0 pypi
h11 0.14.0 pypi_0 pypi
httpcore 1.0.6 pypi_0 pypi
httpx 0.27.2 pypi_0 pypi
idna 3.10 pypi_0 pypi
jiter 0.7.0 pypi_0 pypi
jsonpatch 1.33 pypi_0 pypi
jsonpointer 3.0.0 pypi_0 pypi
langchain 0.2.17 pypi_0 pypi
langchain-core 0.2.43 pypi_0 pypi
langchain-openai 0.1.25 pypi_0 pypi
langchain-text-splitters 0.2.4 pypi_0 pypi
langsmith 0.1.139 pypi_0 pypi
libffi 3.4.4 hd77b12b_1
multidict 6.1.0 pypi_0 pypi
numpy 1.24.4 pypi_0 pypi
openai 1.54.0 pypi_0 pypi
openssl 3.0.15 h827c3e9_0
orjson 3.10.11 pypi_0 pypi
packaging 24.1 pypi_0 pypi
pip 24.2 py38haa95532_0
propcache 0.2.0 pypi_0 pypi
pycparser 2.22 pypi_0 pypi
pydantic 2.9.2 pypi_0 pypi
pydantic-core 2.23.4 pypi_0 pypi
python 3.8.20 h8205438_0
python-dateutil 2.9.0.post0 pypi_0 pypi
pyyaml 6.0.2 pypi_0 pypi
regex 2024.9.11 pypi_0 pypi
requests 2.32.3 pypi_0 pypi
requests-toolbelt 1.0.0 pypi_0 pypi
setuptools 75.1.0 py38haa95532_0
six 1.16.0 pypi_0 pypi
sniffio 1.3.1 pypi_0 pypi
sqlalchemy 2.0.36 pypi_0 pypi
sqlite 3.45.3 h2bbff1b_0
tenacity 8.5.0 pypi_0 pypi
tiktoken 0.7.0 pypi_0 pypi
tqdm 4.66.6 pypi_0 pypi
typing-extensions 4.12.2 pypi_0 pypi
urllib3 2.2.3 pypi_0 pypi
vc 14.40 h2eaa2aa_1
volcengine-python-sdk 1.0.107 pypi_0 pypi
vs2015_runtime 14.40.33807 h98bb1dd_1
wheel 0.44.0 py38haa95532_0
yarl 1.15.2 pypi_0 pypi