├── public ├── pwa-192.png ├── pwa-512.png ├── apple-touch-icon.png └── icon.svg ├── .eslintignore ├── .dockerignore ├── .npmrc ├── src ├── utils │ ├── prism.ts │ ├── auth.ts │ ├── vector.ts │ └── openAI.ts ├── types.ts ├── components │ ├── icons │ │ ├── Clear.tsx │ │ ├── X.tsx │ │ ├── Env.tsx │ │ └── Refresh.tsx │ ├── Header.astro │ ├── Footer.astro │ ├── ErrorMessageItem.tsx │ ├── Logo.astro │ ├── SystemRoleSettings.tsx │ ├── MessageItem.tsx │ └── Themetoggle.astro ├── env.d.ts ├── pages │ ├── api │ │ ├── auth.ts │ │ └── generate.ts │ ├── index.astro │ └── password.astro ├── message.css └── layouts │ └── Layout.astro ├── .vscode ├── extensions.json ├── launch.json └── settings.json ├── prisma ├── migrations │ ├── migration_lock.toml │ └── 20230514143415_init │ │ └── migration.sql └── schema.prisma ├── vercel.json ├── docs ├── 刑法 │ ├── 刑法修正案(二).mdx │ ├── 刑法修正案(十).mdx │ ├── 刑法修正案(五).mdx │ ├── 刑法修正案(三).mdx │ ├── 刑法修正案(四).mdx │ ├── 刑法修正案.mdx │ ├── 刑法修正案(七).mdx │ └── 刑法修正案(六).mdx ├── 宪法 │ ├── 宪法修正案(1988年).mdx │ ├── 宪法修正案(1999年).mdx │ ├── 宪法修正案(1993年).mdx │ ├── 宪法修正案(2004年).mdx │ └── 宪法修正案(2018年).mdx ├── 民法典 │ ├── 附则.mdx │ ├── 继承编.mdx │ └── 人格权编.mdx └── 宪法相关法 │ ├── 外国中央银行财产司法强制措施豁免法(2005-10-25).mdx │ ├── 国务院组织法(1982-12-10).mdx │ ├── 国籍法(1980-09-10).mdx │ ├── 反分裂国家法(2005-03-14).mdx │ ├── 国歌法(2017-09-01).mdx │ ├── 全国人民代表大会常务委员会关于县级以下人民代表大会代表直接选举的若干规定(1983-03-05).mdx │ ├── 反外国制裁法(2021-06-10).mdx │ ├── 国家勋章和国家荣誉称号法(2015-12-27).mdx │ ├── 领海及毗连区法(1992-02-25).mdx │ ├── 专属经济区和大陆架法(1998-06-26).mdx │ ├── 城市居民委员会组织法(2018-12-29).mdx │ ├── 国徽法(2020-10-17).mdx │ ├── 缔结条约程序法(1990-12-28).mdx │ ├── 香港特别行政区驻军法(1996-12-30).mdx │ ├── 外交特权与豁免条例(1986-09-05).mdx │ ├── 澳门特别行政区驻军法(1999-06-28).mdx │ ├── 人民陪审员法(2018-04-27).mdx │ ├── 全国人民代表大会常务委员会议事规则(2009-04-24).mdx │ ├── 居民身份证法(2011-10-29).mdx │ ├── 领事特权与豁免条例(1990-10-30).mdx │ ├── 戒严法(1996-03-01).mdx │ ├── 英雄烈士保护法(2018-04-27).mdx │ ├── 集会游行示威法(2009-08-27).mdx │ ├── 国旗法(2020-10-17).mdx │ ├── 人民检察院组织法(2018-10-26).mdx │ ├── 中国人民解放军选举全国人民代表大会和县级以上地方各级人民代表大会代表的办法(2021-04-29).mdx │ ├── 人民法院组织法(2018-10-26).mdx │ ├── 陆地国界法(2021-10-23).mdx │ ├── 村民委员会组织法(2018-12-29).mdx │ ├── 全国人民代表大会组织法(2021-03-11).mdx │ └── 各级人民代表大会常务委员会监督法(2006-08-27).mdx ├── tsconfig.json ├── netlify.toml ├── Dockerfile ├── docker-compose.yml ├── .gitignore ├── shims.d.ts ├── .github └── workflows │ ├── lint.yml │ ├── build-docker.yml │ └── main.yml ├── .env.example ├── hack ├── docker-entrypoint.sh └── docker-env-replace.sh ├── plugins └── disableBlocks.ts ├── docker-compose.dev.yaml ├── .eslintrc.js ├── LICENSE ├── README.md ├── package.json ├── astro.config.mjs ├── scripts └── inject.ts ├── unocss.config.ts └── README.zh-CN.md /public/pwa-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shfshanyue/chatdocs/HEAD/public/pwa-192.png -------------------------------------------------------------------------------- /public/pwa-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shfshanyue/chatdocs/HEAD/public/pwa-512.png -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | public 3 | node_modules 4 | .netlify 5 | .vercel 6 | .github 7 | .changeset 8 | -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shfshanyue/chatdocs/HEAD/public/apple-touch-icon.png -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | *.md 2 | Dockerfile 3 | docker-compose.yml 4 | LICENSE 5 | netlify.toml 6 | vercel.json 7 | node_modules 8 | .vscode 9 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmmirror.com/ 2 | strict-peer-dependencies=false 3 | auto-install-peers=true 4 | shamefully-hoist=true 5 | -------------------------------------------------------------------------------- /src/utils/prism.ts: -------------------------------------------------------------------------------- 1 | import { PrismaClient } from "@prisma/client"; 2 | 3 | export const prisma = new PrismaClient({ 4 | log: ['query'], 5 | }) -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode","dbaeumer.vscode-eslint","antfu.unocss"], 3 | "unwantedRecommendations": [], 4 | } 5 | -------------------------------------------------------------------------------- /prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (i.e. Git) 3 | provider = "postgresql" -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "rewrites": [ 3 | { 4 | "source": "/api/:match*", 5 | "destination": "https://law.dev.shanyue.tech/api/:match*" 6 | } 7 | ] 8 | } -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export interface ChatMessage { 2 | role: 'system' | 'user' | 'assistant' 3 | content: string 4 | } 5 | 6 | export interface ErrorMessage { 7 | code: string 8 | message: string 9 | } 10 | -------------------------------------------------------------------------------- /docs/刑法/刑法修正案(二).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国刑法修正案(二) 2 | 3 | 2001年8月31日 第九届全国人民代表大会常务委员会第二十三次会议通过 4 | 5 | 6 | 7 | 为了惩治毁林开垦和乱占滥用林地的犯罪,切实保护森林资源,将刑法第三百四十二条修改为: 8 | 9 | “违反土地管理法规,非法占用耕地、林地等农用地,改变被占用土地用途,数量较大,造成耕地、林地等农用地大量毁坏的,处五年以下有期徒刑或者拘役,并处或者单处罚金。” 10 | 11 | 本修正案自公布之日起施行。 -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/base", 3 | "compilerOptions": { 4 | "baseUrl": ".", 5 | "jsx": "preserve", 6 | "jsxImportSource": "solid-js", 7 | "types": ["vite-plugin-pwa/info"], 8 | "paths": { 9 | "@/*": ["src/*"], 10 | }, 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /prisma/migrations/20230514143415_init/migration.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | 3 | -- CreateTable 4 | CREATE TABLE "Document" ( 5 | "id" TEXT NOT NULL, 6 | "content" TEXT NOT NULL, 7 | "vector" vector, 8 | 9 | CONSTRAINT "Document_pkey" PRIMARY KEY ("id") 10 | ); 11 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build.environment] 2 | NETLIFY_USE_PNPM = "true" 3 | NODE_VERSION = "18" 4 | 5 | [build] 6 | command = "OUTPUT=netlify astro build" 7 | publish = "dist" 8 | 9 | [[headers]] 10 | for = "/manifest.webmanifest" 11 | [headers.values] 12 | Content-Type = "application/manifest+json" 13 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:18-alpine 2 | 3 | WORKDIR /code 4 | 5 | RUN npm install -g pnpm 6 | 7 | COPY package.json pnpm-lock.yaml ./ 8 | 9 | RUN pnpm install 10 | 11 | COPY . . 12 | 13 | RUN pnpm run build 14 | 15 | ENV NODE_ENV=production 16 | 17 | EXPOSE 3000 18 | 19 | CMD ["/bin/sh", "./hack/docker-entrypoint.sh"] 20 | -------------------------------------------------------------------------------- /prisma/schema.prisma: -------------------------------------------------------------------------------- 1 | generator client { 2 | provider = "prisma-client-js" 3 | } 4 | 5 | datasource db { 6 | provider = "postgresql" 7 | url = env("DATABASE_URL") 8 | } 9 | 10 | model Document { 11 | id String @id @default(cuid()) 12 | content String 13 | vector Unsupported("vector")? 14 | } -------------------------------------------------------------------------------- /docs/刑法/刑法修正案(十).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国刑法修正案(十) 2 | 3 | 2017年11月4日 第十二届全国人民代表大会常务委员会第三十次会议通过 4 | 5 | 6 | 7 | 为了惩治侮辱国歌的犯罪行为,切实维护国歌奏唱、使用的严肃性和国家尊严,在刑法第二百九十九条中增加一款作为第二款,将该条修改为: 8 | 9 | “在公共场合,故意以焚烧、毁损、涂划、玷污、践踏等方式侮辱中华人民共和国国旗、国徽的,处三年以下有期徒刑、拘役、管制或者剥夺政治权利。 10 | 11 | “在公共场合,故意篡改中华人民共和国国歌歌词、曲谱,以歪曲、贬损方式奏唱国歌,或者以其他方式侮辱国歌,情节严重的,依照前款的规定处罚。” 12 | 13 | 本修正案自公布之日起施行。 -------------------------------------------------------------------------------- /docs/宪法/宪法修正案(1988年).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国宪法修正案(1988年) 2 | 3 | 1988年4月12日 第七届全国人民代表大会第一次会议通过 4 | 5 | 1988年4月12日 第七届全国人民代表大会第一次会议主席团公告第八号公布施行 6 | 7 | 8 | 9 | 第一条 宪法第十一条增加规定:“国家允许私营经济在法律规定的范围内存在和发展。私营经济是社会主义公有制经济的补充。国家保护私营经济的合法的权利和利益,对私营经济实行引导、监督和管理。” 10 | 11 | 第二条 宪法第十条第四款“任何组织或者个人不得侵占、买卖、出租或者以其他形式非法转让土地。”修改为:“任何组织或者个人不得侵占、买卖或者以其他形式非法转让土地。土地的使用权可以依照法律的规定转让。 -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.codeActionsOnSave": { 3 | "source.fixAll.eslint": true 4 | }, 5 | "editor.formatOnSave": false, 6 | "eslint.validate": [ 7 | "javascript", 8 | "javascriptreact", 9 | "astro", // Enable .astro 10 | "typescript", // Enable .ts 11 | "typescriptreact" // Enable .tsx 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /docs/民法典/附则.mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国民法典 2 | 3 | # 附则 4 | 5 | 2020年5月28日 第十三届全国人民代表大会第三次会议通过 6 | 7 | 2021年1月1日 施行 8 | 9 | 10 | 11 | ## 12 | 13 | 第一千二百五十九条 民法所称的“以上”、“以下”、“以内”、“届满”,包括本数;所称的“不满”、“超过”、“以外”,不包括本数。 14 | 15 | 第一千二百六十条 本法自2021年1月1日起施行。《中华人民共和国婚姻法》、《中华人民共和国继承法》、《中华人民共和国民法通则》、《中华人民共和国收养法》、《中华人民共和国担保法》、《中华人民共和国合同法》、《中华人民共和国物权法》、《中华人民共和国侵权责任法》、《中华人民共和国民法总则》同时废止。 -------------------------------------------------------------------------------- /src/components/icons/Clear.tsx: -------------------------------------------------------------------------------- 1 | export default () => { 2 | return ( 3 | 4 | ) 5 | } 6 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | law: 5 | build: . 6 | restart: always 7 | env_file: 8 | - .env 9 | labels: 10 | - "traefik.http.routers.law.rule=Host(`law.dev.shanyue.tech`)" 11 | - traefik.http.routers.law.tls=true 12 | - traefik.http.routers.law.tls.certresolver=le 13 | 14 | networks: 15 | default: 16 | external: 17 | name: traefik_default 18 | -------------------------------------------------------------------------------- /src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | interface ImportMetaEnv { 4 | readonly OPENAI_API_KEY: string 5 | readonly HTTPS_PROXY: string 6 | readonly OPENAI_API_BASE_URL: string 7 | readonly HEAD_SCRIPTS: string 8 | readonly PUBLIC_SECRET_KEY: string 9 | readonly SITE_PASSWORD: string 10 | readonly OPENAI_API_MODEL: string 11 | } 12 | 13 | interface ImportMeta { 14 | readonly env: ImportMetaEnv 15 | } 16 | -------------------------------------------------------------------------------- /src/components/icons/X.tsx: -------------------------------------------------------------------------------- 1 | export default () => { 2 | return ( 3 | 4 | ) 5 | } 6 | -------------------------------------------------------------------------------- /src/pages/api/auth.ts: -------------------------------------------------------------------------------- 1 | import type { APIRoute } from 'astro' 2 | 3 | const realPassword = import.meta.env.SITE_PASSWORD || '' 4 | const passList = realPassword.split(',') || [] 5 | 6 | export const post: APIRoute = async(context) => { 7 | const body = await context.request.json() 8 | 9 | const { pass } = body 10 | return new Response(JSON.stringify({ 11 | code: (!realPassword || pass === realPassword || passList.includes(pass)) ? 0 : -1, 12 | })) 13 | } 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | .vercel/ 4 | .netlify/ 5 | 6 | # generated types 7 | .astro/ 8 | 9 | # dependencies 10 | node_modules/ 11 | 12 | # logs 13 | npm-debug.log* 14 | yarn-debug.log* 15 | yarn-error.log* 16 | pnpm-debug.log* 17 | 18 | # environment variables 19 | .env 20 | .env.production 21 | 22 | # macOS-specific files 23 | .DS_Store 24 | 25 | # Local 26 | *.local 27 | 28 | **/.DS_Store 29 | 30 | # Editor directories and files 31 | .idea 32 | .vercel 33 | -------------------------------------------------------------------------------- /shims.d.ts: -------------------------------------------------------------------------------- 1 | import type { AttributifyAttributes } from '@unocss/preset-attributify' 2 | 3 | // declare module 'solid-js' { 4 | // namespace JSX { 5 | // interface HTMLAttributes extends AttributifyAttributes {} 6 | // } 7 | // } 8 | 9 | declare global { 10 | namespace astroHTML.JSX { 11 | interface HTMLAttributes extends AttributifyAttributes { } 12 | } 13 | namespace JSX { 14 | interface HTMLAttributes<> extends AttributifyAttributes {} 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/components/Header.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import { model } from '../utils/openAI' 3 | import Logo from './Logo.astro' 4 | import Themetoggle from './Themetoggle.astro' 5 | --- 6 | 7 |
8 |
9 | 10 | 11 |
12 |
13 | AI 法律助手 14 | 目前仅支持宪法、刑法与民法典 15 |
16 |

Based on OpenAI API and LangChain.

17 |
18 | -------------------------------------------------------------------------------- /docs/宪法相关法/外国中央银行财产司法强制措施豁免法(2005-10-25).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国外国中央银行财产司法强制措施豁免法 2 | 3 | 中华人民共和国外国中央银行 4 | 5 | 财产司法强制措施豁免法 6 | 7 | 2005年10月25日 第十届全国人民代表大会常务委员会第十八次会议通过 8 | 9 | 10 | 11 | 第一条 中华人民共和国对外国中央银行财产给予财产保全和执行的司法强制措施的豁免;但是,外国中央银行或者其所属国政府书面放弃豁免的或者指定用于财产保全和执行的财产除外。 12 | 13 | 第二条 本法所称外国中央银行,是指外国的和区域经济一体化组织的中央银行或者履行中央银行职能的金融管理机构。 14 | 15 | 本法所称外国中央银行财产,是指外国中央银行的现金、票据、银行存款、有价证券、外汇储备、黄金储备以及该银行的不动产和其他财产。 16 | 17 | 第三条 外国不给予中华人民共和国中央银行或者中华人民共和国特别行政区金融管理机构的财产以豁免,或者所给予的豁免低于本法的规定的,中华人民共和国根据对等原则办理。 18 | 19 | 第四条 本法自公布之日起施行。 -------------------------------------------------------------------------------- /src/components/icons/Env.tsx: -------------------------------------------------------------------------------- 1 | export default () => { 2 | return ( 3 | 4 | ) 5 | } 6 | -------------------------------------------------------------------------------- /src/message.css: -------------------------------------------------------------------------------- 1 | .message pre { 2 | background-color: #64748b10; 3 | font-size: 0.8rem; 4 | padding: 0.4rem 1rem; 5 | } 6 | 7 | .message .hljs { 8 | background-color: transparent; 9 | } 10 | 11 | .message table { 12 | font-size: 0.8em; 13 | } 14 | 15 | .message table thead tr { 16 | background-color: #64748b40; 17 | text-align: left; 18 | } 19 | 20 | .message table th, .message table td { 21 | padding: 0.6rem 1rem; 22 | } 23 | 24 | .message table tbody tr:last-of-type { 25 | border-bottom: 2px solid #64748b40; 26 | } -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: Lint CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | pull_request: 9 | branches: 10 | - main 11 | 12 | jobs: 13 | lint: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v3 17 | 18 | - name: Install pnpm 19 | uses: pnpm/action-setup@v2 20 | 21 | - name: Set node 22 | uses: actions/setup-node@v3 23 | with: 24 | node-version: 18.x 25 | cache: pnpm 26 | 27 | - name: Install 28 | run: pnpm install --no-frozen-lockfile 29 | 30 | - name: Lint 31 | run: pnpm run lint 32 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | # Your API Key for OpenAI 2 | OPENAI_API_KEY= 3 | # Provide proxy for OpenAI API. e.g. http://127.0.0.1:7890 4 | HTTPS_PROXY= 5 | # Inject analytics or other scripts before of the page 6 | HEAD_SCRIPTS= 7 | # Secret string for the project. Use for generating signatures for API calls 8 | PUBLIC_SECRET_KEY= 9 | # Set password for site, support multiple password separated by comma. If not set, site will be public 10 | SITE_PASSWORD= 11 | # ID of the model to use. https://platform.openai.com/docs/api-reference/models/list 12 | OPENAI_API_MODEL= 13 | 14 | DATABASE_URL=postgresql://pgvector:password@pgvector:5432/vector 15 | OPENAI_BASE_URL=https://ai.devtool.tech/proxy -------------------------------------------------------------------------------- /hack/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | sub_service_pid="" 4 | 5 | sub_service_command="node dist/server/entry.mjs" 6 | 7 | function init() { 8 | /bin/sh ./hack/docker-env-replace.sh 9 | } 10 | 11 | function main { 12 | init 13 | 14 | echo "Starting service..." 15 | 16 | npx prisma migrate deploy 17 | npx prisma generate 18 | # npx tsx scripts/inject.ts 19 | 20 | eval "$sub_service_command &" 21 | sub_service_pid=$! 22 | 23 | trap cleanup SIGTERM SIGINT 24 | echo "Running script..." 25 | while [ true ]; do 26 | sleep 5 27 | done 28 | } 29 | 30 | function cleanup { 31 | echo "Cleaning up!" 32 | kill -TERM $sub_service_pid 33 | } 34 | 35 | main 36 | -------------------------------------------------------------------------------- /plugins/disableBlocks.ts: -------------------------------------------------------------------------------- 1 | export default function plugin(platform?: string) { 2 | const transform = (code: string, id: string) => { 3 | if (id.includes('pages/api/generate.ts')) { 4 | return { 5 | code: code.replace(/^.*?#vercel-disable-blocks([\s\S]+?)#vercel-end.*?$/gm, ''), 6 | map: null, 7 | } 8 | } 9 | if (platform === 'netlify' && id.includes('layouts/Layout.astro')) { 10 | return { 11 | code: code.replace(/^.*?([\s\S]+?).*?$/gm, ''), 12 | map: null, 13 | } 14 | } 15 | } 16 | 17 | return { 18 | name: 'vercel-disable-blocks', 19 | enforce: 'pre', 20 | transform, 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/components/Footer.astro: -------------------------------------------------------------------------------- 1 | 31 | -------------------------------------------------------------------------------- /src/components/ErrorMessageItem.tsx: -------------------------------------------------------------------------------- 1 | import IconRefresh from './icons/Refresh' 2 | import type { ErrorMessage } from '@/types' 3 | 4 | interface Props { 5 | data: ErrorMessage 6 | onRetry?: () => void 7 | } 8 | 9 | export default ({ data, onRetry }: Props) => { 10 | return ( 11 |
12 | {data.code &&
{data.code}
} 13 |
{data.message}
14 | {onRetry && ( 15 |
16 |
17 | 18 | Regenerate 19 |
20 |
21 | )} 22 |
23 | ) 24 | } 25 | -------------------------------------------------------------------------------- /docker-compose.dev.yaml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | law-dev: 5 | image: "node:18" 6 | restart: always 7 | volumes: 8 | - .:/code 9 | - /etc/localtime:/etc/localtime 10 | - /etc/timezone:/etc/timezone 11 | working_dir: /code 12 | command: npm run dev 13 | env_file: 14 | - .env 15 | environment: 16 | - NODE_ENV=development 17 | labels: 18 | - "traefik.http.routers.law-dev.rule=Host(`law.dev.shanyue.tech`)" 19 | - traefik.http.routers.law-dev.tls=true 20 | - traefik.http.routers.law-dev.tls.certresolver=le 21 | ports: 22 | - 3100:3000 23 | 24 | pgvector: 25 | image: "ankane/pgvector:v0.4.2" 26 | ports: 27 | - 5433:5432 28 | restart: always 29 | volumes: 30 | - db:/var/lib/postgresql/data 31 | environment: 32 | - POSTGRES_PASSWORD=password 33 | 34 | volumes: 35 | db: 36 | 37 | networks: 38 | default: 39 | external: 40 | name: traefik_default 41 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@evan-yang', 'plugin:astro/recommended'], 3 | rules: { 4 | 'no-console': ['error', { allow: ['error'] }], 5 | 'react/display-name': 'off', 6 | 'react-hooks/rules-of-hooks': 'off', 7 | '@typescript-eslint/no-use-before-define': 'off', 8 | }, 9 | overrides: [ 10 | { 11 | files: ['*.astro'], 12 | parser: 'astro-eslint-parser', 13 | parserOptions: { 14 | parser: '@typescript-eslint/parser', 15 | extraFileExtensions: ['.astro'], 16 | }, 17 | rules: { 18 | 'no-mixed-spaces-and-tabs': ['error', 'smart-tabs'], 19 | }, 20 | }, 21 | { 22 | // Define the configuration for ` 37 | -------------------------------------------------------------------------------- /docs/宪法相关法/国务院组织法(1982-12-10).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国国务院组织法 2 | 3 | 1982年12月10日 第五届全国人民代表大会第五次会议通过 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 | 第十一条 国务院可以根据工作需要和精简的原则,设立若干直属机构主管各项专门业务,设立若干办事机构协助总理办理专门事项。每个机构设负责人二至五人。 -------------------------------------------------------------------------------- /src/components/icons/Refresh.tsx: -------------------------------------------------------------------------------- 1 | export default () => { 2 | return ( 3 | 4 | ) 5 | } 6 | -------------------------------------------------------------------------------- /docs/宪法相关法/国籍法(1980-09-10).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国国籍法 2 | 3 | 1980年9月10日 第五届全国人民代表大会第三次会议通过 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 | 第十八条 本法自公布之日起施行。 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Diu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/刑法/刑法修正案(五).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国刑法修正案(五) 2 | 3 | 2005年2月28日 第十届全国人民代表大会常务委员会第十四次会议通过 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 | 四、本修正案自公布之日起施行。 -------------------------------------------------------------------------------- /.github/workflows/build-docker.yml: -------------------------------------------------------------------------------- 1 | name: build_docker 2 | 3 | on: 4 | push: 5 | branches: [main] 6 | 7 | jobs: 8 | build_docker: 9 | name: Build docker 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout 13 | uses: actions/checkout@v3 14 | 15 | - name: Set up QEMU 16 | uses: docker/setup-qemu-action@v2 17 | - name: Set up Docker Buildx 18 | uses: docker/setup-buildx-action@v2 19 | - name: Login to DockerHub 20 | uses: docker/login-action@v2 21 | with: 22 | # https://hub.docker.com/settings/security?generateToken=true 23 | username: ${{ secrets.DOCKERHUB_USERNAME }} 24 | password: ${{ secrets.DOCKERHUB_TOKEN }} 25 | - name: Build and push 26 | id: docker_build 27 | uses: docker/build-push-action@v4 28 | with: 29 | context: . 30 | push: true 31 | labels: ${{ steps.meta.outputs.labels }} 32 | platforms: linux/amd64,linux/arm64 33 | tags: | 34 | ${{ secrets.DOCKERHUB_USERNAME }}/chatgpt-demo:${{ github.ref_name }} 35 | ${{ secrets.DOCKERHUB_USERNAME }}/chatgpt-demo:latest 36 | -------------------------------------------------------------------------------- /public/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/Logo.astro: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/utils/auth.ts: -------------------------------------------------------------------------------- 1 | import { sha256 } from 'js-sha256' 2 | interface AuthPayload { 3 | t: number 4 | m: string 5 | } 6 | 7 | async function digestMessage(message: string) { 8 | if (typeof crypto !== 'undefined' && crypto?.subtle?.digest) { 9 | const msgUint8 = new TextEncoder().encode(message) 10 | const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8) 11 | const hashArray = Array.from(new Uint8Array(hashBuffer)) 12 | return hashArray.map(b => b.toString(16).padStart(2, '0')).join('') 13 | } else { 14 | return sha256(message).toString() 15 | } 16 | } 17 | 18 | export const generateSignature = async(payload: AuthPayload) => { 19 | const { t: timestamp, m: lastMessage } = payload 20 | const secretKey = import.meta.env.PUBLIC_SECRET_KEY as string || '' 21 | const signText = `${timestamp}:${lastMessage}:${secretKey}` 22 | // eslint-disable-next-line no-return-await 23 | return await digestMessage(signText) 24 | } 25 | 26 | export const verifySignature = async(payload: AuthPayload, sign: string) => { 27 | // if (Math.abs(payload.t - Date.now()) > 1000 * 60 * 5) { 28 | // return false 29 | // } 30 | const payloadSign = await generateSignature(payload) 31 | return payloadSign === sign 32 | } 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ChatGPT 知识库聊天机器人 2 | 3 | 使用 GPT-4 API 与 LangChain 构建适用于多个大型 `pdf`/`md`/`mdx`/`txt`/`epub` 等任意文件格式的 ChatGPT 智能知识库 AI 机器人。 4 | 5 | ![](https://static.shanyue.tech/images/23-05-16/clipboard-7590.dd2989.webp) 6 | 7 | ## 环境要求 8 | 9 | 1. `node.js >= 18` 10 | 2. `docker` 11 | 3. `docker compose` 12 | 13 | ## 环境变量 14 | 15 | | Name | Description | Default | 16 | | --- | --- | --- | 17 | | `DATABASE_URL` | DataBase URL for postgres. | `null` | 18 | | `OPENAI_API_KEY` | Your API Key for OpenAI. | `null` | 19 | | `OPENAI_BASE_URL` | Custom base url for OpenAI API. | `https://api.openai.com` | 20 | | `OPENAI_API_MODEL` | ID of the model to use. [List models](https://platform.openai.com/docs/api-reference/models/list) | `gpt-3.5-turbo` | 21 | 22 | ## 搭建属于你自己的知识库 23 | 24 | 1. 进入 `docs` 文件夹, 置换为你们知识库的文档,包括且不限于 `pdf`/`md`/`mdx`/`txt` 等 25 | 1. 按照部署步骤进行上线 26 | 27 | ## 部署 28 | 29 | ### development 30 | 31 | ``` bash 32 | # 装包 33 | $ pnpm i 34 | 35 | $ cp .env.example .env 36 | 37 | # 修改环境变量,见上表 38 | $ vim .env 39 | 40 | # 启动 pgvector 数据库 41 | $ docker compose up pgvector 42 | 43 | # 迁移数据库 44 | $ npx prisma migrate deploy 45 | 46 | # 注入 vector 47 | $ npx tsx scripts/inject.ts 48 | 49 | # 启动服务 50 | $ npm run dev 51 | ``` 52 | 53 | ### docker 54 | 55 | ``` bash 56 | $ docker compose up 57 | ``` 58 | -------------------------------------------------------------------------------- /hack/docker-env-replace.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Your API Key for OpenAI 4 | openai_api_key=$OPENAI_API_KEY 5 | # Provide proxy for OpenAI API. e.g. http://127.0.0.1:7890 6 | https_proxy=$HTTPS_PROXY 7 | # Custom base url for OpenAI API. default: https://api.openai.com 8 | openai_api_base_url=$OPENAI_API_BASE_URL 9 | # Inject analytics or other scripts before of the page 10 | head_scripts=$HEAD_SCRIPTS 11 | # Secret string for the project. Use for generating signatures for API calls 12 | public_secret_key=$PUBLIC_SECRET_KEY 13 | # Set password for site, support multiple password separated by comma. If not set, site will be public 14 | site_password=$SITE_PASSWORD 15 | # ID of the model to use. https://platform.openai.com/docs/api-reference/models/list 16 | openai_api_model=$OPENAI_API_MODEL 17 | 18 | for file in $(find ./dist -type f -name "*.mjs"); do 19 | sed "s/({}).OPENAI_API_KEY/\"$openai_api_key\"/g; 20 | s/({}).HTTPS_PROXY/\"$https_proxy\"/g; 21 | s/({}).OPENAI_API_BASE_URL/\"$openai_api_base_url\"/g; 22 | s/({}).HEAD_SCRIPTS/\"$head_scripts\"/g; 23 | s/({}).PUBLIC_SECRET_KEY/\"$public_secret_key\"/g; 24 | s/({}).OPENAI_API_MODEL/\"$openai_api_model\"/g; 25 | s/process.env.SITE_PASSWORD/\"$site_password\"/g" $file > tmp 26 | mv tmp $file 27 | done 28 | 29 | rm -rf tmp 30 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Create and publish a Docker image 2 | 3 | on: 4 | push: 5 | branches: ['main'] 6 | 7 | env: 8 | REGISTRY: ghcr.io 9 | IMAGE_NAME: ${{ github.repository }} 10 | 11 | jobs: 12 | build-and-push-image: 13 | runs-on: ubuntu-latest 14 | permissions: 15 | contents: read 16 | packages: write 17 | 18 | steps: 19 | - name: Checkout repository 20 | uses: actions/checkout@v3 21 | 22 | - name: Log in to the Container registry 23 | uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 24 | with: 25 | registry: ${{ env.REGISTRY }} 26 | username: ${{ github.actor }} 27 | password: ${{ secrets.GITHUB_TOKEN }} 28 | 29 | - name: Extract metadata (tags, labels) for Docker 30 | id: meta 31 | uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 32 | with: 33 | images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} 34 | 35 | - name: Build and push Docker image 36 | uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc 37 | with: 38 | context: . 39 | push: true 40 | tags: ${{ steps.meta.outputs.tags }} 41 | labels: ${{ steps.meta.outputs.labels }} 42 | -------------------------------------------------------------------------------- /docs/宪法相关法/反分裂国家法(2005-03-14).mdx: -------------------------------------------------------------------------------- 1 | # 反分裂国家法 2 | 3 | 2005年3月14日 第十届全国人民代表大会第三次会议通过 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 | 59 | 第九条 依照本法规定采取非和平方式及其他必要措施并组织实施时,国家尽最大可能保护台湾平民和在台湾的外国人的生命财产安全和其他正当权益,减少损失;同时,国家依法保护台湾同胞在中国其他地区的权利和利益。 60 | 61 | 第十条 本法自公布之日起施行。 -------------------------------------------------------------------------------- /docs/刑法/刑法修正案(三).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国刑法修正案(三) 2 | 3 | 2001年12月29日 第九届全国人民代表大会常务委员会第二十五次会议通过 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 | 九、本修正案自公布之日起施行。 -------------------------------------------------------------------------------- /docs/宪法相关法/国歌法(2017-09-01).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国国歌法 2 | 3 | 2017年9月1日 第十二届全国人民代表大会常务委员会第二十九次会议通过 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 | 59 | 中小学应当将国歌作为爱国主义教育的重要内容,组织学生学唱国歌,教育学生了解国歌的历史和精神内涵、遵守国歌奏唱礼仪。 60 | 61 | 第十二条 新闻媒体应当积极开展对国歌的宣传,普及国歌奏唱礼仪知识。 62 | 63 | 第十三条 国庆节、国际劳动节等重要的国家法定节日、纪念日,中央和省、自治区、直辖市的广播电台、电视台应当按照国务院广播电视主管部门规定的时点播放国歌。 64 | 65 | 第十四条 县级以上各级人民政府及其有关部门在各自职责范围内,对国歌的奏唱、播放和使用进行监督管理。 66 | 67 | 第十五条 在公共场合,故意篡改国歌歌词、曲谱,以歪曲、贬损方式奏唱国歌,或者以其他方式侮辱国歌的,由公安机关处以警告或者十五日以下拘留;构成犯罪的,依法追究刑事责任。 68 | 69 | 第十六条 本法自2017年10月1日起施行。 70 | 71 | 附件:中华人民共和国国歌(五线谱版、简谱版) -------------------------------------------------------------------------------- /docs/宪法相关法/全国人民代表大会常务委员会关于县级以下人民代表大会代表直接选举的若干规定(1983-03-05).mdx: -------------------------------------------------------------------------------- 1 | # 全国人民代表大会常务委员会关于县级以下人民代表大会代表直接选举的若干规定 2 | 3 | 1983年3月5日 第五届全国人民代表大会常务委员会第二十六次会议通过 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 | 59 | 选民和各政党、各人民团体推荐的代表候选人都应当列入代表候选人名单,选举委员会不得调换或者增减。 60 | 61 | 正式代表候选人名单,经过预选确定的,按得票多少的顺序排列。 -------------------------------------------------------------------------------- /docs/宪法相关法/反外国制裁法(2021-06-10).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国反外国制裁法 2 | 3 | 2021年6月10日 第十三届全国人民代表大会常务委员会第二十九次会议通过 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 | 59 | 第十五条 对于外国国家、组织或者个人实施、协助、支持危害我国主权、安全、发展利益的行为,需要采取必要反制措施的,参照本法有关规定执行。 60 | 61 | 第十六条 本法自公布之日起施行。 -------------------------------------------------------------------------------- /docs/宪法/宪法修正案(1999年).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国宪法修正案(1999年) 2 | 3 | 1999年3月15日 第九届全国人民代表大会第二次会议通过 4 | 5 | 1999年3月15日 中华人民共和国全国人民代表大会公告公布施行 6 | 7 | 8 | 9 | 第十二条 宪法序言第七自然段:“中国新民主主义革命的胜利和社会主义事业的成就,都是中国共产党领导中国各族人民,在马克思列宁主义、毛泽东思想的指引下,坚持真理,修正错误,战胜许多艰难险阻而取得的。我国正处于社会主义初级阶段。国家的根本任务是,根据建设有中国特色社会主义的理论,集中力量进行社会主义现代化建设。中国各族人民将继续在中国共产党领导下,在马克思列宁主义、毛泽东思想指引下,坚持人民民主专政,坚持社会主义道路,坚持改革开放,不断完善社会主义的各项制度,发展社会主义民主,健全社会主义法制,自力更生,艰苦奋斗,逐步实现工业、农业、国防和科学技术的现代化,把我国建设成为富强、民主、文明的社会主义国家。”修改为:“中国新民主主义革命的胜利和社会主义事业的成就,是中国共产党领导中国各族人民,在马克思列宁主义、毛泽东思想的指引下,坚持真理,修正错误,战胜许多艰难险阻而取得的。我国将长期处于社会主义初级阶段。国家的根本任务是,沿着建设有中国特色社会主义的道路,集中力量进行社会主义现代化建设。中国各族人民将继续在中国共产党领导下,在马克思列宁主义、毛泽东思想、邓小平理论指引下,坚持人民民主专政,坚持社会主义道路,坚持改革开放,不断完善社会主义的各项制度,发展社会主义市场经济,发展社会主义民主,健全社会主义法制,自力更生,艰苦奋斗,逐步实现工业、农业、国防和科学技术的现代化,把我国建设成为富强、民主、文明的社会主义国家。” 10 | 11 | 第十三条 宪法第五条增加一款,作为第一款,规定:“中华人民共和国实行依法治国,建设社会主义法治国家。” 12 | 13 | 第十四条 宪法第六条:“中华人民共和国的社会主义经济制度的基础是生产资料的社会主义公有制,即全民所有制和劳动群众集体所有制。”“社会主义公有制消灭人剥削人的制度,实行各尽所能,按劳分配的原则。”修改为:“中华人民共和国的社会主义经济制度的基础是生产资料的社会主义公有制,即全民所有制和劳动群众集体所有制。社会主义公有制消灭人剥削人的制度,实行各尽所能、按劳分配的原则。”“国家在社会主义初级阶段,坚持公有制为主体、多种所有制经济共同发展的基本经济制度,坚持按劳分配为主体、多种分配方式并存的分配制度。” 14 | 15 | 第十五条 宪法第八条第一款:“农村中的家庭联产承包为主的责任制和生产、供销、信用、消费等各种形式的合作经济,是社会主义劳动群众集体所有制经济。参加农村集体经济组织的劳动者,有权在法律规定的范围内经营自留地、自留山、家庭副业和饲养自留畜。”修改为:“农村集体经济组织实行家庭承包经营为基础、统分结合的双层经营体制。农村中的生产、供销、信用、消费等各种形式的合作经济,是社会主义劳动群众集体所有制经济。参加农村集体经济组织的劳动者,有权在法律规定的范围内经营自留地、自留山、家庭副业和饲养自留畜。” 16 | 17 | 第十六条 宪法第十一条:“在法律规定范围内的城乡劳动者个体经济,是社会主义公有制经济的补充。国家保护个体经济的合法的权利和利益。”“国家通过行政管理,指导、帮助和监督个体经济。”“国家允许私营经济在法律规定的范围内存在和发展。私营经济是社会主义公有制经济的补充。国家保护私营经济的合法的权利和利益,对私营经济实行引导、监督和管理。”修改为:“在法律规定范围内的个体经济、私营经济等非公有制经济,是社会主义市场经济的重要组成部分。”“国家保护个体经济、私营经济的合法的权利和利益。国家对个体经济、私营经济实行引导、监督和管理。” 18 | 19 | 第十七条 宪法第二十八条:“国家维护社会秩序,镇压叛国和其他反革命的活动,制裁危害社会治安、破坏社会主义经济和其他犯罪的活动,惩办和改造犯罪分子。”修改为:“国家维护社会秩序,镇压叛国和其他危害国家安全的犯罪活动,制裁危害社会治安、破坏社会主义经济和其他犯罪的活动,惩办和改造犯罪分子。” -------------------------------------------------------------------------------- /docs/宪法相关法/国家勋章和国家荣誉称号法(2015-12-27).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国国家勋章和国家荣誉称号法 2 | 3 | 2015年12月27日 第十二届全国人民代表大会常务委员会第十八次会议通过 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 | 第二十一条 本法自2016年1月1日起施行。 -------------------------------------------------------------------------------- /docs/宪法/宪法修正案(1993年).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国宪法修正案(1993年) 2 | 3 | 1993年3月29日 第八届全国人民代表大会第一次会议通过 4 | 5 | 1993年3月29日 中华人民共和国全国人民代表大会公告第八号公布施行 6 | 7 | 8 | 9 | 第三条 宪法序言第七自然段后两句:“今后国家的根本任务是集中力量进行社会主义现代化建设。中国各族人民将继续在中国共产党领导下,在马克思列宁主义、毛泽东思想指引下,坚持人民民主专政,坚持社会主义道路,不断完善社会主义的各项制度,发展社会主义民主,健全社会主义法制,自力更生,艰苦奋斗,逐步实现工业、农业、国防和科学技术的现代化,把我国建设成为高度文明、高度民主的社会主义国家。”修改为:“我国正处于社会主义初级阶段。国家的根本任务是,根据建设有中国特色社会主义的理论,集中力量进行社会主义现代化建设。中国各族人民将继续在中国共产党领导下,在马克思列宁主义、毛泽东思想指引下,坚持人民民主专政,坚持社会主义道路,坚持改革开放,不断完善社会主义的各项制度,发展社会主义民主,健全社会主义法制,自力更生,艰苦奋斗,逐步实现工业、农业、国防和科学技术的现代化,把我国建设成为富强、民主、文明的社会主义国家。” 10 | 11 | 第四条 宪法序言第十自然段末尾增加:“中国共产党领导的多党合作和政治协商制度将长期存在和发展。” 12 | 13 | 第五条 宪法第七条:“国营经济是社会主义全民所有制经济,是国民经济中的主导力量。国家保障国营经济的巩固和发展。”修改为:“国有经济,即社会主义全民所有制经济,是国民经济中的主导力量。国家保障国有经济的巩固和发展。” 14 | 15 | 第六条 宪法第八条第一款:“农村人民公社、农业生产合作社和其他生产、供销、信用、消费等各种形式的合作经济,是社会主义劳动群众集体所有制经济。参加农村集体经济组织的劳动者,有权在法律规定的范围内经营自留地、自留山、家庭副业和饲养自留畜。”修改为:“农村中的家庭联产承包为主的责任制和生产、供销、信用、消费等各种形式的合作经济,是社会主义劳动群众集体所有制经济。参加农村集体经济组织的劳动者,有权在法律规定的范围内经营自留地、自留山、家庭副业和饲养自留畜。” 16 | 17 | 第七条 宪法第十五条:“国家在社会主义公有制基础上实行计划经济。国家通过经济计划的综合平衡和市场调节的辅助作用,保证国民经济按比例地协调发展。”“禁止任何组织或者个人扰乱社会经济秩序,破坏国家经济计划。”修改为:“国家实行社会主义市场经济。”“国家加强经济立法,完善宏观调控。”“国家依法禁止任何组织或者个人扰乱社会经济秩序。” 18 | 19 | 第八条 宪法第十六条:“国营企业在服从国家的统一领导和全面完成国家计划的前提下,在法律规定的范围内,有经营管理的自主权。”“国营企业依照法律规定,通过职工代表大会和其他形式,实行民主管理。”修改为:“国有企业在法律规定的范围内有权自主经营。”“国有企业依照法律规定,通过职工代表大会和其他形式,实行民主管理。” 20 | 21 | 第九条 宪法第十七条:“集体经济组织在接受国家计划指导和遵守有关法律的前提下,有独立进行经济活动的自主权。”“集体经济组织依照法律规定实行民主管理,由它的全体劳动者选举和罢免管理人员,决定经营管理的重大问题。”修改为:“集体经济组织在遵守有关法律的前提下,有独立进行经济活动的自主权。”“集体经济组织实行民主管理,依照法律规定选举和罢免管理人员,决定经营管理的重大问题。” 22 | 23 | 第十条 宪法第四十二条第三款:“劳动是一切有劳动能力的公民的光荣职责。国营企业和城乡集体经济组织的劳动者都应当以国家主人翁的态度对待自己的劳动。国家提倡社会主义劳动竞赛,奖励劳动模范和先进工作者。国家提倡公民从事义务劳动。”修改为:“劳动是一切有劳动能力的公民的光荣职责。国有企业和城乡集体经济组织的劳动者都应当以国家主人翁的态度对待自己的劳动。国家提倡社会主义劳动竞赛,奖励劳动模范和先进工作者。国家提倡公民从事义务劳动。” 24 | 25 | 第十一条 宪法第九十八条:“省、直辖市、设区的市的人民代表大会每届任期五年。县、不设区的市、市辖区、乡、民族乡、镇的人民代表大会每届任期三年。”修改为:“省、直辖市、县、市、市辖区的人民代表大会每届任期五年。乡、民族乡、镇的人民代表大会每届任期三年。” -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chatgpt-api-demo", 3 | "version": "0.0.1", 4 | "packageManager": "pnpm@7.28.0", 5 | "scripts": { 6 | "dev": "astro dev --port 3000 --host 0.0.0.0", 7 | "start": "astro dev", 8 | "build": "astro build", 9 | "build:vercel": "OUTPUT=vercel astro build", 10 | "build:netlify": "OUTPUT=netlify astro build", 11 | "preview": "astro preview", 12 | "astro": "astro", 13 | "lint": "eslint . --ext .js,.jsx,.ts,.tsx,.astro", 14 | "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx,.astro --fix", 15 | "prepare": "prisma generate" 16 | }, 17 | "dependencies": { 18 | "@astrojs/netlify": "2.0.0", 19 | "@astrojs/node": "^5.0.4", 20 | "@astrojs/solid-js": "^2.0.2", 21 | "@astrojs/vercel": "^3.1.3", 22 | "@prisma/client": "^4.14.0", 23 | "@unocss/reset": "^0.50.1", 24 | "astro": "^2.0.15", 25 | "eslint": "^8.36.0", 26 | "eventsource-parser": "^0.1.0", 27 | "highlight.js": "^11.7.0", 28 | "js-sha256": "^0.9.0", 29 | "katex": "^0.6.0", 30 | "langchain": "^0.0.75", 31 | "markdown-it": "^13.0.1", 32 | "markdown-it-highlightjs": "^4.0.1", 33 | "markdown-it-katex": "^2.0.3", 34 | "midash": "^0.8.2", 35 | "prisma": "^4.14.0", 36 | "solid-js": "1.6.12", 37 | "solidjs-use": "^1.2.0", 38 | "tsx": "^3.12.7", 39 | "undici": "^5.20.0" 40 | }, 41 | "devDependencies": { 42 | "@evan-yang/eslint-config": "^1.0.1", 43 | "@iconify-json/carbon": "^1.1.16", 44 | "@types/markdown-it": "^12.2.3", 45 | "@typescript-eslint/parser": "^5.54.1", 46 | "@unocss/preset-attributify": "^0.50.1", 47 | "@unocss/preset-icons": "^0.50.4", 48 | "@unocss/preset-typography": "^0.50.3", 49 | "eslint-plugin-astro": "^0.24.0", 50 | "punycode": "^2.3.0", 51 | "unocss": "^0.50.1", 52 | "vite-plugin-pwa": "^0.14.1" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/pages/password.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Layout from '../layouts/Layout.astro' 3 | --- 4 | 5 | 6 |
7 |
Please input password
8 |
9 | 10 |
11 |
12 |
13 |
14 |
15 |
16 | 17 | 51 | 52 | 72 | -------------------------------------------------------------------------------- /docs/宪法相关法/领海及毗连区法(1992-02-25).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国领海及毗连区法 2 | 3 | 1992年2月25日 第七届全国人民代表大会常务委员会第二十四次会议通过 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 | 59 | 追逐只要没有中断,可以在中华人民共和国领海或者毗连区外继续进行。在被追逐的船舶进入其本国领海或者第三国领海时,追逐终止。 60 | 61 | 本条规定的紧追权由中华人民共和国军用船舶、军用航空器或者中华人民共和国政府授权的执行政府公务的船舶、航空器行使。 62 | 63 | 第十五条 中华人民共和国领海基线由中华人民共和国政府公布。 64 | 65 | 第十六条 中华人民共和国政府依据本法制定有关规定。 66 | 67 | 第十七条 本法自公布之日起施行。 -------------------------------------------------------------------------------- /docs/刑法/刑法修正案(四).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国刑法修正案(四) 2 | 3 | 2002年12月28日 第九届全国人民代表大会常务委员会第三十一次会议通过 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 | 九、本修正案自公布之日起施行。 -------------------------------------------------------------------------------- /src/utils/vector.ts: -------------------------------------------------------------------------------- 1 | import { OpenAI } from 'langchain/llms/openai' 2 | import { PrismaVectorStore } from 'langchain/vectorstores/prisma' 3 | import { ConversationalRetrievalQAChain } from 'langchain/chains' 4 | import { OpenAIEmbeddings } from 'langchain/embeddings/openai'; 5 | import { Prisma, PrismaClient, Document } from '@prisma/client' 6 | import { prisma } from './prism'; 7 | 8 | const CONDENSE_PROMPT = `Given the following conversation and a follow up question, rephrase the follow up question to be a standalone question. 9 | 10 | Chat History: 11 | {chat_history} 12 | Follow Up Input: {question} 13 | Standalone question:`; 14 | 15 | const QA_PROMPT = `假设你是 GPT-4 模型,请你扮演一个中国法律专家的角色。 16 | 我将提供一个法律情境,你需要提供相关建议和法律规定。请只针对这种情况提供建议。根据文档中的具体条款回答问题,只使用文档中的信息。 17 | 18 | 请注意,如果法律规定有任何更新,请参考最新内容。你的输出必须是中文。如果你不确定,或者答案没有明确写在文档中,请回答:“对不起,我无法提供帮助。” 19 | 20 | 上下文: {context} 21 | 问题: {question} 22 | 请给出答案:` 23 | 24 | export const makeChain = (vectorstore: PrismaVectorStore) => { 25 | const model = new OpenAI({ 26 | temperature: 0.5, 27 | modelName: 'gpt-3.5-turbo', 28 | }, { 29 | basePath: process.env.OPENAI_BASE_URL + '/v1' 30 | }); 31 | 32 | const chain = ConversationalRetrievalQAChain.fromLLM( 33 | model, 34 | vectorstore.asRetriever(), 35 | { 36 | qaTemplate: QA_PROMPT, 37 | // questionGeneratorTemplate: CONDENSE_PROMPT, 38 | returnSourceDocuments: true, //The number of source documents returned is 4 by default 39 | }, 40 | ); 41 | return chain; 42 | } 43 | 44 | export const createVectorStore = () => { 45 | const embeddings = new OpenAIEmbeddings({}, { 46 | basePath: process.env.OPENAI_BASE_URL + '/v1' 47 | }); 48 | 49 | const vectorStore = PrismaVectorStore.withModel(prisma).create( 50 | embeddings, 51 | { 52 | prisma: Prisma, 53 | tableName: 'Document', 54 | vectorColumnName: 'vector', 55 | columns: { 56 | id: PrismaVectorStore.IdColumn, 57 | content: PrismaVectorStore.ContentColumn, 58 | }, 59 | } 60 | ) 61 | 62 | return vectorStore 63 | } 64 | -------------------------------------------------------------------------------- /astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'astro/config' 2 | import unocss from 'unocss/astro' 3 | import solidJs from '@astrojs/solid-js' 4 | 5 | import node from '@astrojs/node' 6 | import { VitePWA } from 'vite-plugin-pwa' 7 | import vercel from '@astrojs/vercel/edge' 8 | import netlify from '@astrojs/netlify/edge-functions' 9 | import disableBlocks from './plugins/disableBlocks' 10 | 11 | const envAdapter = () => { 12 | if (process.env.OUTPUT === 'vercel') { 13 | return vercel() 14 | } else if (process.env.OUTPUT === 'netlify') { 15 | return netlify() 16 | } else { 17 | return node({ 18 | mode: 'standalone', 19 | }) 20 | } 21 | } 22 | 23 | // https://astro.build/config 24 | export default defineConfig({ 25 | integrations: [ 26 | unocss(), 27 | solidJs(), 28 | ], 29 | output: process.env.MODE || 'server', 30 | adapter: envAdapter(), 31 | vite: { 32 | plugins: [ 33 | process.env.OUTPUT === 'vercel' && disableBlocks(), 34 | process.env.OUTPUT === 'netlify' && disableBlocks('netlify'), 35 | process.env.OUTPUT !== 'netlify' && VitePWA({ 36 | registerType: 'autoUpdate', 37 | manifest: { 38 | name: '中国法律助手', 39 | short_name: '中国法律助手', 40 | description: '基于 PDF/Markdown/Docx/Txt 等任意文件格式的智能知识库 AI 机器人', 41 | theme_color: '#212129', 42 | background_color: '#ffffff', 43 | icons: [ 44 | { 45 | src: 'pwa-192.png', 46 | sizes: '192x192', 47 | type: 'image/png', 48 | }, 49 | { 50 | src: 'pwa-512.png', 51 | sizes: '512x512', 52 | type: 'image/png', 53 | }, 54 | { 55 | src: 'icon.svg', 56 | sizes: '32x32', 57 | type: 'image/svg', 58 | purpose: 'any maskable', 59 | }, 60 | ], 61 | }, 62 | client: { 63 | installPrompt: true, 64 | periodicSyncForUpdates: 20, 65 | }, 66 | devOptions: { 67 | enabled: true, 68 | }, 69 | }), 70 | ], 71 | }, 72 | }) 73 | -------------------------------------------------------------------------------- /docs/宪法相关法/专属经济区和大陆架法(1998-06-26).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国专属经济区和大陆架法 2 | 3 | 1998年6月26日 第九届全国人民代表大会常务委员会第三次会议通过 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 | 59 | 第十五条 中华人民共和国政府可以根据本法制定有关规定。 60 | 61 | 第十六条 本法自公布之日起施行。 -------------------------------------------------------------------------------- /docs/刑法/刑法修正案.mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国刑法修正案 2 | 3 | 1999年12月25日 第九届全国人民代表大会常务委员会第十三次会议通过 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 | 九、本修正案自公布之日起施行。 -------------------------------------------------------------------------------- /docs/宪法/宪法修正案(2004年).mdx: -------------------------------------------------------------------------------- 1 | # 中华人民共和国宪法修正案(2004年) 2 | 3 | 2004年3月14日 第十届全国人民代表大会第二次会议通过 4 | 5 | 2004年3月14日 全国人民代表大会公告公布施行 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 | 第三十一条 宪法第四章章名“国旗、国徽、首都”修改为“国旗、国歌、国徽、首都”。宪法第一百三十六条增加一款,作为第二款:“中华人民共和国国歌是《义勇军进行曲》。” -------------------------------------------------------------------------------- /scripts/inject.ts: -------------------------------------------------------------------------------- 1 | import { RecursiveCharacterTextSplitter } from 'langchain/text_splitter'; 2 | import { OpenAIEmbeddings } from 'langchain/embeddings/openai'; 3 | import { PrismaVectorStore } from 'langchain/vectorstores/prisma'; 4 | import { PDFLoader } from 'langchain/document_loaders/fs/pdf'; 5 | import { DocxLoader } from 'langchain/document_loaders/fs/docx'; 6 | import { TextLoader } from 'langchain/document_loaders/fs/text'; 7 | import { DirectoryLoader } from 'langchain/document_loaders/fs/directory'; 8 | import { Prisma, PrismaClient, Document } from '@prisma/client' 9 | import { prisma } from '@/utils/prism'; 10 | import { createVectorStore } from '@/utils/vector'; 11 | 12 | export const run = async () => { 13 | try { 14 | /*load raw docs from the all files in the directory */ 15 | const directoryLoader = new DirectoryLoader('docs', { 16 | '.pdf': (path) => new PDFLoader(path), 17 | '.docx': (path) => new DocxLoader(path), 18 | '.txt': (path) => new TextLoader(path), 19 | '.md': (path) => new TextLoader(path), 20 | '.mdx': (path) => new TextLoader(path), 21 | }, true); 22 | 23 | console.log('正在载入文档') 24 | const rawDocs = await directoryLoader.load(); 25 | 26 | /* Split text into chunks */ 27 | const textSplitter = new RecursiveCharacterTextSplitter({ 28 | chunkSize: 500, 29 | chunkOverlap: 100, 30 | }); 31 | 32 | console.log('正在切割文档') 33 | const docs = await textSplitter.splitDocuments(rawDocs); 34 | 35 | console.log('正在存储向量数据库', docs) 36 | // TODO: fromDocuments 不生效,需要再次 addModels,且 id 无去重,需重新优化 37 | // const vectorStore = await PrismaVectorStore.fromDocuments(docs, embeddings, { 38 | // db: prisma, 39 | // prisma: Prisma, 40 | // tableName: 'Document', 41 | // vectorColumnName: 'vector', 42 | // columns: { 43 | // id: PrismaVectorStore.IdColumn, 44 | // content: PrismaVectorStore.ContentColumn, 45 | // }, 46 | // }); 47 | const vectorStore = createVectorStore() 48 | const documents = await prisma.$transaction( 49 | docs.map((doc) => prisma.document.create({ data: { content: doc.pageContent } })) 50 | ) 51 | console.log(documents) 52 | await vectorStore.addModels(documents) 53 | } catch (error) { 54 | console.log('error', error); 55 | throw new Error('Failed to ingest your data'); 56 | } 57 | }; 58 | 59 | (async () => { 60 | await run(); 61 | console.log('Done'); 62 | })(); 63 | -------------------------------------------------------------------------------- /src/components/SystemRoleSettings.tsx: -------------------------------------------------------------------------------- 1 | import { Show } from 'solid-js' 2 | import IconEnv from './icons/Env' 3 | import IconX from './icons/X' 4 | import type { Accessor, Setter } from 'solid-js' 5 | 6 | interface Props { 7 | canEdit: Accessor 8 | systemRoleEditing: Accessor 9 | setSystemRoleEditing: Setter 10 | currentSystemRoleSettings: Accessor 11 | setCurrentSystemRoleSettings: Setter 12 | } 13 | 14 | export default (props: Props) => { 15 | let systemInputRef: HTMLTextAreaElement 16 | 17 | const handleButtonClick = () => { 18 | props.setCurrentSystemRoleSettings(systemInputRef.value) 19 | props.setSystemRoleEditing(false) 20 | } 21 | 22 | return ( 23 |
24 | 25 | 26 |
27 |
28 | }> 29 | props.setCurrentSystemRoleSettings('')} class="sys-edit-btn p-1 rd-50%" > 30 | 31 | System Role: 32 |
33 |
34 | {props.currentSystemRoleSettings()} 35 |
36 |
37 |
38 | 39 | props.setSystemRoleEditing(!props.systemRoleEditing())} class="sys-edit-btn"> 40 | 41 | Add System Role 42 | 43 | 44 |
45 | 46 |
47 |
48 | 49 | System Role: 50 |
51 |

Gently instruct the assistant and set the behavior of the assistant.

52 |
53 |