https://mp.weixin.qq.com/s/8Hg42KyW1Xklw-8gkDvjmw

 

 

ONE. 如何入门?

 

大模型编程通常使用以下两种方法:

  1. 通过大模型发布的 API ,您将根据官方文档的调用格式,将提示词通过网络发送给大模型。

     

  2. 通过一些封装好的框架进行调用。

  • 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 ZhipuAIclient = ZhipuAI(api_key="") # 填写您自己的APIKeyresponse = 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 ChatZhipuAIllm = ChatZhipuAI(    api_key="...",    model_name="glm-3-turbo",    temperature=0.5,)
llm.invoke("创造一个更精准、吸引人的slogan")


还可以使用提示词模板(具体内容可以看上一课),通过链的技术将不同组件串在一起。

from langchain_community.chat_models import ChatZhipuAIfrom 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 Ollamafrom 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, AutoTokenizerfrom 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赋能之路!

 

觉得我的文章对你有帮助的话,请不要吝啬你的点赞、在看和转发~