Skip to main content

ChatGLM

ChatGLM-6B是基于通用语言模型(GLM)框架的开放式双语语言模型,具有62亿个参数。通过量化技术,用户可以在消费级显卡上进行本地部署(仅需要6GB的GPU内存,在INT4量化级别下)。

ChatGLM2-6B是开源双语(中英文)聊天模型ChatGLM-6B的第二代版本。它保留了第一代模型的流畅对话流程和低部署门槛,同时引入了更好的性能、更长的上下文和更高效的推理等新功能。

本示例介绍了如何使用LangChain与ChatGLM2-6B推理进行文本补全交互。

ChatGLM-6B和ChatGLM2-6B具有相同的API规范,因此该示例适用于两者。

from langchain.llms import ChatGLM
from langchain import PromptTemplate, LLMChain

# import os
template = """{question}"""
prompt = PromptTemplate(template=template, input_variables=["question"])
# 本地部署ChatGLM api服务器的默认endpoint_url
endpoint_url = "http://127.0.0.1:8000"

# 在代理环境中直接访问endpoint
# os.environ['NO_PROXY'] = '127.0.0.1'

llm = ChatGLM(
endpoint_url=endpoint_url,
max_token=80000,
history=[["我将从美国到中国来旅游,出行前希望了解中国的城市", "欢迎问我任何问题。"]],
top_p=0.9,
model_kwargs={"sample_model_args": False},
)

# 当您希望LLM对象跟踪对话历史记录并将累积的上下文发送到后端模型API时,才打开with_history,使其具有状态。默认情况下,它是无状态的。
# llm.with_history = True
llm_chain = LLMChain(prompt=prompt, llm=llm)
question = "北京和上海两座城市有什么不同?"

llm_chain.run(question)
    ChatGLM payload: {'prompt': '北京和上海两座城市有什么不同?', 'temperature': 0.1, 'history': [['我将从美国到中国来旅游,出行前希望了解中国的城市', '欢迎问我任何问题。']], 'max_length': 80000, 'top_p': 0.9, 'sample_model_args': False}





'北京和上海是中国的两个首都,它们在许多方面都有所不同。\n\n北京是中国的政治和文化中心,拥有悠久的历史和灿烂的文化。它是中国最重要的古都之一,也是中国历史上最后一个封建王朝的都城。北京有许多著名的古迹和景点,例如紫禁城、天安门广场和长城等。\n\n上海是中国最现代化的城市之一,也是中国商业和金融中心。上海拥有许多国际知名的企业和金融机构,同时也有许多著名的景点和美食。上海的外滩是一个历史悠久的商业区,拥有许多欧式建筑和餐馆。\n\n除此之外,北京和上海在交通和人口方面也有很大差异。北京是中国的首都,人口众多,交通拥堵问题较为严重。而上海是中国的商业和金融中心,人口密度较低,交通相对较为便利。\n\n总的来说,北京和上海是两个拥有独特魅力和特点的城市,可以根据自己的兴趣和时间来选择前往其中一座城市旅游。'