请教本地部署好的glm4,要怎么写一个langchain的embedding封装脚本
Closed this issue · 1 comments
Ch1r3 commented
hello,我想在部署好的glm4-9b-chat模型上搭建一个RAG流程。但是langchain的embedding似乎需要自己封装一个。
我参考了datawhale的《动⼿学⼤模型应⽤开发》教程,里面的embedding封装代码,client总是需要ZhipuAI()方法,但这个方法是调用api才能用的。
from zhipuai import ZhipuAI
def zhipu_embedding(text: str):
api_key = os.environ['ZHIPUAI_API_KEY']
client = ZhipuAI(api_key=api_key)
response = client.embeddings.create(
model="embedding-2",
input=text,
)
return response
text = '要⽣成 embedding 的输⼊⽂本,字符串形式。'
response = zhipu_embedding(text=text)
@root_validator()
def validate_environment(cls, values: Dict) -> Dict:
"""
实例化ZhipuAI为values["client"]
Args:
root_validator 接收⼀个函数作为参数,该函数包含需要校验的逻辑。函数应该返回⼀个字典,其中包含经过校验的数据。如果校验失败,则抛出⼀个 ValueError 异
常。
zhipuai.ZhipuAI 会⾃动获取
values (Dict): 包含配置信息的字典,必须包含 client 的字段.
Returns:
ZHIPUAI_API_KEY 。
values (Dict): 包含配置信息的字典。如果环境中有zhipuai库,则将返回实例化的ZhipuAI类;否则将报错 'ModuleNotFoundError: No module named 'zhipuai''.
"""
from zhipuai import ZhipuAI
values["client"] = ZhipuAI()
return values
能否帮忙解决这个问题,感谢 : )
KMnO4-zx commented
可以看考我们的另一个大模型项目:https://github.com/datawhalechina/llm-universe