6.LLM 应用精选案例
chap6.1
核心是针对四种大模型 API 实现了底层封装,基于 Langchain 搭建了可切换模型的检索问答链,并实现 API 以及 Gradio 部署的个人轻量大模型应用。
- 注意qa这里实例化了ConversationalRetrievalChain,一个新的方法;
- x相当于被__call__给调用,传入的question/chat_history在那里边进行处理。
- 举个__call__工作原理的例子,来自学习群内的同学。
class Adder:
def __init__(self, n):
self.n = n
def __call__(self, x):
return self.n + x
# 创建Adder类的实例
adder = Adder(10)
# 像调用函数一样调用实例
result = adder(5) # 相当于调用 adder.__call__(5)
print(result) # 输出: 15
- 所以可以对“qa”进行参数传入。
qa = ConversationalRetrievalChain.from_llm(
llm = llm,
retriever = retriever
)
#print(self.llm)
result = qa({"question": question,"chat_history": self.chat_history})
#result里有question、chat_history、answer
answer = result['answer']
self.chat_history.append((question,answer)) #更新历史记录
欢迎点赞👍和收藏⭐ 这是对我最大的鼓励!