-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
228 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
name: GPTStudio Build and Publish | ||
|
||
on: | ||
# run it on push to the default repository branch | ||
push: | ||
branches: [main] | ||
# run it during pull request | ||
pull_request: | ||
|
||
jobs: | ||
# define job to build and publish docker image | ||
build-and-push-docker-image: | ||
name: Build Docker image and push to repositories | ||
# run only when code is compiling and tests are passing | ||
runs-on: ubuntu-latest | ||
|
||
# steps to perform in job | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
|
||
# setup Docker buld action | ||
- name: Set up Docker Buildx | ||
id: buildx | ||
uses: docker/setup-buildx-action@v2 | ||
|
||
- name: Login to DockerHub | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
|
||
- name: Build image and push to Docker Hub and GitHub Container Registry | ||
uses: docker/build-push-action@v2 | ||
with: | ||
# 指向带有 Dockerfile 的源代码所在位置的相对路径 | ||
context: ./ | ||
file: ./Dockerfile.gptstudio | ||
# Note: tags has to be all lower-case | ||
tags: | | ||
talkincode/gptstudio:latest | ||
# build on feature branches, push only on main branch | ||
push: ${{ github.ref == 'refs/heads/main' }} | ||
|
||
- name: Image digest | ||
run: echo ${{ steps.docker_build.outputs.digest }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
FROM condaforge/mambaforge:latest | ||
|
||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
RUN echo "Asia/Shanghai" > /etc/timezone && \ | ||
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ | ||
apt-get update && \ | ||
apt-get install -y tzdata && \ | ||
dpkg-reconfigure --frontend noninteractive tzdata | ||
|
||
|
||
# 安装 Tesseract-OCR、Graphviz 和字体 | ||
RUN apt-get update && \ | ||
apt-get install -y \ | ||
tesseract-ocr \ | ||
tesseract-ocr-chi-sim \ | ||
graphviz \ | ||
fonts-wqy-microhei \ | ||
fonts-noto && \ | ||
apt-get clean && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
# Set up a working directory | ||
WORKDIR / | ||
|
||
# Copy the project files to the working directory | ||
COPY ./GPTStudio.py /GPTStudio.py | ||
COPY ./pages /pages | ||
COPY ./libs /libs | ||
COPY ./requirements-gptstudio.txt /requirements.txt | ||
|
||
|
||
|
||
# Install project dependencies | ||
RUN pip install --no-cache-dir -r requirements.txt | ||
|
||
|
||
# Expose the port | ||
EXPOSE 80 | ||
|
||
ENV PYTHONUNBUFFERED=1 | ||
|
||
# Set the launch command | ||
CMD ["streamlit","run", "/GPTStudio.py"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
import streamlit as st | ||
|
||
|
||
def sidebar(): | ||
st.sidebar.markdown(""" | ||
# 🦜GPTStudio | ||
- [GPTStudio Github](https://github.com/terateams/GPTService) | ||
- [Streamlit Website](https://streamlit.io) | ||
""") | ||
if st.sidebar.button('登出'): | ||
st.session_state['authenticated'] = False | ||
st.rerun() | ||
|
||
|
||
def show_page(): | ||
sidebar() | ||
st.title("🦜GPTStudio") | ||
st.markdown(""" | ||
GPTStudio 是一个基于 GPT (Generative Pre-trained Transformer) 的工具库,旨在为开发者和数据科学家提供强大且易于使用的 GPT 功能。本工具库结合了知识库管理、GPT 测试能力,以及一个基于 AI 的工具集合,使其成为任何涉及 AI 和大模型的项目的理想选择。 | ||
## 主要特性 | ||
### 管理知识库 | ||
- **知识库上传和维护**:用户可以轻松上传和维护自己的知识库,使 GPT 模型能够访问和利用这些专门的知识。 | ||
- **知识库检索**:提供高效的检索工具,帮助用户快速找到知识库中的相关信息。 | ||
### GPT 测试 | ||
- **模型能力测试**:允许用户测试GPT模型在知识库辅助下的性能和能力。 | ||
- **实时反馈**:提供实时反馈,帮助用户了解模型的响应和准确性。 | ||
### AI 工具集合 | ||
- **广泛的 AI 工具**:包括但不限于文本生成、语言理解、数据分析等多种 AI 相关工具。 | ||
- **大模型支持**:支持与其他大型 AI 模型集成,扩展应用的能力和范围。 | ||
### 基于 Streamlit 的应用实现 | ||
- **直观的界面**:利用 Streamlit 创建的用户界面,直观易用,无需编程经验即可操作。 | ||
- **快速部署**:快速部署 AI 应用,便于展示和共享结果。 | ||
## 贡献 | ||
我们欢迎各种形式的贡献,包括但不限于新功能的建议、代码改进、文档补充等。请阅读我们的贡献指南来了解如何开始贡献。 | ||
## 许可证 | ||
GPTStudio 是在 MIT 许可证下发布的。有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 | ||
--- | ||
""") | ||
|
||
|
||
# 假设这是从数据库或环境变量中获取的用户凭据 | ||
VALID_USERNAME = "admin" | ||
VALID_PASSWORD = "password" | ||
|
||
|
||
def verify_credentials(username, password): | ||
"""验证用户名和密码""" | ||
return username == VALID_USERNAME and password == VALID_PASSWORD | ||
|
||
|
||
def show_login_page(): | ||
"""显示登录界面""" | ||
st.title("登录") | ||
username = st.text_input("用户名") | ||
password = st.text_input("密码", type='password') | ||
if st.button('登录'): | ||
if verify_credentials(username, password): | ||
st.session_state['authenticated'] = True | ||
st.success("登录成功!") | ||
st.rerun() | ||
else: | ||
st.error("登录失败,请检查你的用户名和密码。") | ||
|
||
|
||
def main(): | ||
"""主应用""" | ||
if 'authenticated' not in st.session_state: | ||
st.session_state['authenticated'] = False | ||
|
||
if st.session_state['authenticated']: | ||
show_page() | ||
else: | ||
show_login_page() | ||
|
||
|
||
if __name__ == "__main__": | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import streamlit as st | ||
|
||
# 在其他页面 | ||
if 'authenticated' not in st.session_state or not st.session_state['authenticated']: | ||
st.error("请先登录。") | ||
st.stop() # 阻止未认证的用户访问页面内容 | ||
|
||
st.sidebar.markdown("# 知识库搜索") | ||
|
||
st.title("知识库搜索") | ||
st.subheader("搜索知识库内容") | ||
st.divider() | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
pydantic | ||
python-dotenv | ||
tiktoken | ||
openai | ||
PyMuPDF | ||
langchain | ||
qdrant-client | ||
python-multipart | ||
pytesseract | ||
pillow | ||
graphviz | ||
jinja2 | ||
streamlit |