datawhalechina/self-llm

请教本地部署好的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

能否帮忙解决这个问题,感谢 : )

可以看考我们的另一个大模型项目:https://github.com/datawhalechina/llm-universe