https://mp.weixin.qq.com/s/8Hg42KyW1Xklw-8gkDvjmw
ONE. 如何入门?
大模型编程通常使用以下两种方法:
-
通过大模型发布的 API ,您将根据官方文档的调用格式,将提示词通过网络发送给大模型。
-
通过一些封装好的框架进行调用。
- Langchain/LlamaIndex。Langchain 支持 Python 比较通用的 library
- Semantic Kernel。Semantic Kernel 是 Microsoft 提供的一个 library,支持 C#、Python 和 Java 语言。
先通过大模型的API创建人生中第一个大模型应用,这里用到的是ChatGLM-4。
安装 智谱AI
有许多 libraries 可用于与 ChatGLM 交互。还可以使用不同的编程语言,如 C#、Python、JavaScript、Java 等。我们选择使用 Python 库,通过 pip
来安装。
pip install --upgrade zhipuai
添加 API key
API 就像您的登录密码,您需要告诉大模型谁在调用,通过管理后台可以看到您的API,直接复制。
复制 Key 后,是时候创建您的第一个文本生成应用程序了。把复制的 API Key 粘贴到下面代码的api_key后面,保存并执行:
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4", # 填写需要调用的模型名称
messages=[
{"role": "user", "content": "作为一名营销专家,请为我的产品创作一个吸引人的slogan"},
{"role": "assistant", "content": "当然,为了创作一个吸引人的slogan,请告诉我一些关于您产品的信息"},
{"role": "user", "content": "智谱AI开放平台"},
{"role": "assistant", "content": "智启未来,谱绘无限一智谱AI,让创新触手可及!"},
{"role": "user", "content": "创造一个更精准、吸引人的slogan"}
],
)
print(response.choices[0].message)
OK,我们已经成功创建第一个AI应用了。
TWO. 通过LangChain打造AI应用
除了大模型官方提供的API以外,还可以通过一些框架调用大模型,这样的好处是我们通过一套代码就可以调用不同的大模型。
pip install --upgrade langchain
同样也需要先复制好API Key,接下来用几行代码就可以搞定
from langchain_community.chat_models import ChatZhipuAI
llm = ChatZhipuAI(
api_key="...",
model_name="glm-3-turbo",
temperature=0.5,
)
llm.invoke("创造一个更精准、吸引人的slogan")
还可以使用提示词模板(具体内容可以看上一课),通过链的技术将不同组件串在一起。
from langchain_community.chat_models import ChatZhipuAI
from langchain_core.prompts import ChatPromptTemplate
llm = ChatZhipuAI(
api_key="...",
model_name="glm-3-turbo",
temperature=0.5,
)
prompt = ChatPromptTemplate.from_messages([
("system", "您是世界级的技术文档编写者。"),
("user", "{input}")
])
chain = prompt | llm
chain.invoke({"input": "创造一个更精准、吸引人的slogan"})
THREE. 打造本地的专属AI应用
通过API的方式确实比较方便,但是也有一个弊端,就是费用问题。跟网页版不同,通过API的方式一般都是收费的,并且是按照token计费,提问和回答的都会算费用。
所以,我们可以采用ollama的方式运行本地大模型,零代码运行ollama的集成方式可以参考这篇文章。不会编程?笔记本也可以免费构建自己的专属个人/企业知识库
ollama直接下载安装即可,安装完成后在命令行里面执行这个命令,可以下载最近爆火的llama3
ollama run llama3:8b
这次终于可以松口气了~免费的就是爽,调用API跑的都是人民币啊!
from langchain_community.llms import Ollama
from langchain_core.prompts import ChatPromptTemplate
if __name__ == "__main__":
llm = Ollama(model="llama3:8b")
prompt = ChatPromptTemplate.from_messages([
("system", "您是世界级的技术文档编写者。"),
("user", "{input}")
])
chain = prompt | llm
chain.invoke({"input": "创造一个更精准、吸引人的slogan"})
FOUR. 不联网跑本地大模型应用
上面的方法还得联网,先安装ollama,再通过ollama下载大模型文件。
但不是每个电脑都能联网的,很多公司和一些机密单位内部都是禁止联网的,那如果没有网的环境下,想本地跑大模型怎么办?
不用担心,通过调用AutoModelForCausalLM,不用ollama也可以调用本地大模型。
from modelscope import AutoModelForCausalLM, AutoTokenizer
from modelscope import GenerationConfig
# Note: The default behavior now has injection attack prevention off.
tokenizer = AutoTokenizer.from_pretrained("qwen/Qwen-7B", trust_remote_code=True)
# use auto mode, automatically select precision based on the device.
model = AutoModelForCausalLM.from_pretrained("qwen/Qwen-7B", device_map="auto", trust_remote_code=True).eval()
# Specify hyperparameters for generation. But if you use transformers>=4.32.0, there is no need to do this.
# model.generation_config = GenerationConfig.from_pretrained("Qwen/Qwen-7B", trust_remote_code=True)
inputs = tokenizer('蒙古国的首都是乌兰巴托(Ulaanbaatar)\n冰岛的首都是雷克雅未克(Reykjavik)\n埃塞俄比亚的首都是', return_tensors='pt')
inputs = inputs.to(model.device)
pred = model.generate(**inputs)
print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))
# 蒙古国的首都是乌兰巴托(Ulaanbaatar)\n冰岛的首都是雷克雅未克(Reykjavik)\n埃塞俄比亚的首都是亚的斯亚贝巴(Addis Ababa)...
现在您已经了解如何在不同的环境下创建自己的专属AI程序,后面您可以在这个基础上,继续扩展程序完成各种任务。例如:
-
生成一种类型的文本。例如,生成一首诗、测验题目等。
-
查找信息。您可以使用提示来查找信息,例如 ” 明天的天气怎么样 “。
-
生成代码。您可以使用提示来生成代码,例如开发用于验证电子邮件的正则表达式,或者写一个网页程序。
课后练习:
temperature 有什么作用?
A. 它控制输出的随机程度。
B. 它控制返回内容的大小。
C. 它控制使用多少 tokens 。
希望我今天的分享,能抛砖引玉,帮助大家开启你的AI赋能之路!
觉得我的文章对你有帮助的话,请不要吝啬你的点赞、在看和转发~
标签:专属,AI,模型,API,应用,import,model,ollama From: https://www.cnblogs.com/zhangbojiangfeng/p/18162949