代码中使用的是讯飞spark3.0版本,其中版本在的控制已经封装到了langchain对应的讯飞的iflytek的类中,可以在调用的时候显示控制,默认是spark2.0版本
讯飞星火的Langchain封装
因为在Langchain中没有讯飞spark的类,因此基于langchain的问题做了如下的封装(如下代码可以直接用)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
@File : iflytek.py
@Time : 2023/10/27 17:28:58
@Author : CrissChan
@Version : 1.0
@Site : https://blog.csdn.net/crisschan
@Desc : 通过Langchain的customerLLM的方式,把讯飞的spark介入Langchain,按照Langchain的https://python.langchain.com/docs/modules/model_io/models/llms/custom_llm进行改写
'''
import logging
from typing import Any, List, Optional,Mapping
from langchain.callbacks.manager import CallbackManagerForLLMRun
from langchain.llms.base import LLM
from spark_middlerware import SparkMiddleware
class SparkLLM(LLM):
#domain 代表需要调取spark的版本其中有三种值可选 "general"是v1.5版本,&