当前位置:   article > 正文

【LLM】langchain ui: langchain执行过程可视化

langchain ui

langchain ui: langchain执行过程可视化

可视化UI网址:https://smith.langchain.com/
目前需要邀请码

参考代码:

import os
import openai
sys.path.append('../..')
openai.api_key  ='your_openai_key'

import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.langchain.plus"
os.environ["LANGCHAIN_API_KEY"] = "..." # 替换成自己的langchain_api_key

from langchain.vectorstores import Chroma
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.chat_models import ChatOpenAI
from langchain.chains import RetrievalQA
from langchain.prompts import PromptTemplate

persist_directory = 'docs/chroma/' #存放文件的地方
embedding = OpenAIEmbeddings()
vectordb = Chroma(persist_directory=persist_directory, embedding_function=embedding) #创建向量数据库
llm_name = "gpt-3.5-turbo" #模型名
llm = ChatOpenAI(model_name=llm_name, temperature=0)#初始化chatgpt

#!!!!默认的方式
# 构造prompt
template = """Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer. Use three sentences maximum. Keep the answer as concise as possible. Always say "thanks for asking!" at the end of the answer. 
{context}
Question: {question}
Helpful Answer:"""
QA_CHAIN_PROMPT = PromptTemplate.from_template(template)

# 初始化chain
qa_chain = RetrievalQA.from_chain_type(
    llm,
    retriever=vectordb.as_retriever(),
    return_source_documents=True,
    chain_type_kwargs={"prompt": QA_CHAIN_PROMPT}
)
question = "Is probability a class topic?"
result = qa_chain({"query": question})
result["result"]

#!!!mapreduce方式
qa_chain_mr = RetrievalQA.from_chain_type(
    llm,
    retriever=vectordb.as_retriever(),
    chain_type="map_reduce"
)
result_mr = qa_chain_mr({"query": question})
result_mr["result"]

#!!!refine方式
qa_chain_rf = RetrievalQA.from_chain_type(
    llm,
    retriever=vectordb.as_retriever(),
    chain_type="refine"
)
result_fr = qa_chain_fr({"query": question})
result_fr["result"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

默认方式是将检索到的(假设这里我们使用的是4个文档)所有文档丢入llm,根据所有文档回答相应问题
mapreduce方式是将检索到的文档(假设这里我们使用的是4个文档)先分别丢入llm(调用4次),由llm判定是否和问题相关,在将相关的丢入llm,回答问题
refine方式将建多到的文档按照顺序丢入。
如下图:
在这里插入图片描述

具体的langchain ui使用图如下:

在这里插入图片描述
每一次请求都会有相应的tag,具体点开可以到详细信息

参考网址:
[1]: https://smith.langchain.com/
[2]: https://deeplearning.ai
[3]: https://github.io/
[4]: http://langchain.com

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/365892
推荐阅读
相关标签
  

闽ICP备14008679号