Spaces:
No application file
No application file
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}") |