""" 1. 支持所有多个文件类型的大模型批处理功能,可以清洗文本数据,提取关键信息,并生成标准格式的输出文件。 1. 支持多种文件类型的上传,包括pdf, docx, xlsx, csv, json等。 1. Streamlit不支持上传一个文件夹,可以用ctrl+A上传所有文件。会自动显示上传的文件名字。 错误信息: 1. 如果上传的单个文件中的内容超过大模型的上下文,可能会报错。需要确认文件内容,或者需要更换长文大模型。 """ ##TODO: 1. 每次调用新的csv文件。 # -*- coding: utf-8 -*- import streamlit as st import openai import os import numpy as np import pandas as pd import json import csv import tempfile from tempfile import NamedTemporaryFile import pathlib from pathlib import Path import re from re import sub from itertools import product import time from time import sleep from datetime import datetime import streamlit_authenticator as stauth # from langchain_community.vectorstores import FAISS # from langchain.embeddings.huggingface import HuggingFaceEmbeddings # from langchain_core.output_parsers import StrOutputParser # from langchain_core.runnables import RunnablePassthrough from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens from typing import Dict, List, Optional, Tuple, Union import requests import streamlit as st # import rag_reponse_002 import dashscope from dotenv import load_dotenv from datetime import datetime import pytz from pytz import timezone from datetime import date import qwen_response from save_info import save_csv_info import streamlit_ext as ste ##TODO: 为了点击download button后保持页面。 import create_newfile ## 获得程序运行的当前时间 def get_current_time(): beijing_tz = timezone('Asia/Shanghai') beijing_time = datetime.now(beijing_tz) current_time = beijing_time.strftime('%H:%M:%S') return current_time load_dotenv() ### 设置openai的API key os.environ["OPENAI_API_KEY"] = os.environ['user_token'] openai.api_key = os.environ['user_token'] bing_search_api_key = os.environ['bing_api_key'] dashscope.api_key = os.environ['dashscope_api_key'] ### Streamlit页面设定。 st.set_page_config(layout="wide", page_icon="🌀", page_title="人工智能大模型的智能信息探索平台") st.title("人工智能大模型文本清洗与挖掘平台(可内网部署)") # st.subheader("Large Language Model-based Knowledge Base QA System") # st.warning("_声明:内容由人工智能生成,仅供参考。如果您本人使用或对外传播本服务生成的输出,您应当主动核查输出内容的真实性、准确性,避免传播虚假信息。_") # st.info("_声明:内容由人工智能生成,仅供参考。如果您本人使用或对外传播本服务生成的输出,您应当主动核查输出内容的真实性、准确性,避免传播虚假信息。_") st.write("_声明:内容由人工智能生成,仅供参考。如果您本人使用或对外传播本服务生成的输出,您应当主动核查输出内容的真实性、准确性,避免传播虚假信息。_") # st.divider() ### authentication with a local yaml file. import yaml from yaml.loader import SafeLoader with open('./config.yaml') as file: config = yaml.load(file, Loader=SafeLoader) authenticator = stauth.Authenticate( config['credentials'], config['cookie']['name'], config['cookie']['key'], config['cookie']['expiry_days'], config['preauthorized'] ) user, authentication_status, username = authenticator.login('main') # user, authentication_status, username = authenticator.login('用户登录', 'main') ## 清楚所有对话记录。 def clear_all(): st.session_state.conversation = None st.session_state.chat_history = None st.session_state.messages = [] message_placeholder = st.empty() ## 只用这一个就可以了。 # st.rerun() return None if authentication_status: with st.sidebar: st.markdown( """