Spaces:
No application file
No application file
File size: 1,700 Bytes
8e0523e 8a19836 7d1563c 8a19836 7d1563c c5763ee 8a19836 a494886 8a19836 c5763ee 8a19836 7d1563c 8a19836 7d1563c 8a19836 7d1563c 8a19836 7d1563c 8a19836 3e029de 7d1563c 8a19836 7d1563c 8a19836 7d1563c 8a19836 7d1563c 8a19836 7d1563c 8a19836 c5763ee 8a19836 |
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 |
import streamlit as st
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.core.settings import Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.openai_like import OpenAILike
import os
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
# 设置 API 参数
base_url = "https://internlm-chat.intern-ai.org.cn/puyu/api/v1/"
api_key = os.getenv("MY_API_KEY")
model = "internlm2.5-latest"
# 初始化 LLM
llm = OpenAILike(model=model, api_base=base_url, api_key=api_key, is_chat_model=True)
# 初始化一个 HuggingFaceEmbedding 对象,用于将文本转换为向量表示
embed_model = HuggingFaceEmbedding(
model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2"
)
# 将创建的嵌入模型赋值给全局设置的 embed_model 属性
Settings.embed_model = embed_model
# 将创建的 LLM 赋值给全局设置的 llm 属性
Settings.llm = llm
# 从指定目录读取所有文档,并加载数据到内存中
documents = SimpleDirectoryReader("./data").load_data()
# 创建一个 VectorStoreIndex,并使用之前加载的文档来构建索引
index = VectorStoreIndex.from_documents(documents)
# 创建一个查询引擎,这个引擎可以接收查询并返回相关文档的响应
query_engine = index.as_query_engine()
# 设置页面标题
st.title("LlamaIndex Chat")
# 创建一个文本输入框供用户输入问题
user_input = st.text_input("请输入你的问题:")
# 按钮用于提交问题
if st.button("发送"):
# 使用查询引擎获取回复
response = query_engine.query(user_input)
# 显示回复
st.write(f"回复: {response}") |