├── .devcontainer └── devcontainer.json ├── .dockerignore ├── .editorconfig ├── .env.example ├── .eslintcache ├── .eslintrc.json ├── .gitattributes ├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── FUNDING.yml ├── ISSUE_TEMPLATES │ ├── bug-report.yaml │ ├── config.yml │ ├── docs.yml │ └── feature-request.yaml ├── PULL_REQUEST_TEMPLATE │ └── pull_request_template.md ├── SECURITY.md ├── SUPPORT.md ├── dependabot.yml └── workflows │ └── node.js.yml ├── .gitignore ├── .husky ├── .gitignore └── pre-commit ├── .vscode ├── extensions.json └── launch.json ├── Dockerfile ├── LICENSE ├── README.md ├── __tests__ ├── extract-array.test.ts ├── remove-task-prefix.ts ├── stripe.sh └── whitespace.test.ts ├── aws └── cf │ ├── agent.cf.json │ └── deploy.sh ├── docker-compose.yml ├── docs └── README.hu-Cs4K1Sr4C.md ├── entrypoint.sh ├── jest.config.cjs ├── next-i18next.config.js ├── next.config.mjs ├── package-lock.json ├── package.json ├── postcss.config.cjs ├── prettier.config.cjs ├── prisma ├── schema.prisma ├── schema.prismae └── useSqlite.sh ├── public ├── android-chrome-192x192.png ├── banner.png ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── fonts │ └── Roboto-Regular.ttf ├── locales │ ├── de │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── en │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── es │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── fr │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── hr │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── hu │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── it │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── ja │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── ko │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── lt │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── nl │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── pl │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── pt │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── ro │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── ru │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── sk │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ ├── uk │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json │ └── zh │ │ ├── chat.json │ │ ├── common.json │ │ ├── drawer.json │ │ ├── errors.json │ │ ├── help.json │ │ ├── indexPage.json │ │ ├── languages.json │ │ ├── settings.json │ │ └── translation.json ├── robots.txt ├── site.webmanifest ├── tokenizer.model ├── vicuna-7b-v1_webgpu.wasm └── wizardlm-7b_webgpu.wasm ├── sentry.edge.config.ts ├── sentry.server.config.ts ├── setup.sh ├── src ├── agent │ ├── web-llm.ts │ └── web-llm │ │ ├── llmChat.ts │ │ ├── llmChatPipeline.ts │ │ ├── sentencepiece │ │ └── index.js │ │ └── tvm │ │ ├── tvmjs.bundle.js │ │ └── tvmjs_runtime.wasi.js ├── components │ ├── AboutDialog.tsx │ ├── Accordion.tsx │ ├── AutonomousAgent.ts │ ├── Badge.tsx │ ├── Button.tsx │ ├── ChatWindow.tsx │ ├── Combobox.tsx │ ├── Dialog.tsx │ ├── DottedGridBackground.tsx │ ├── Drawer.tsx │ ├── FadingHr.tsx │ ├── HelpDialog.tsx │ ├── Input.tsx │ ├── Label.tsx │ ├── LanguageCombobox.tsx │ ├── MarkdownRenderer.tsx │ ├── Menu.tsx │ ├── Ping.tsx │ ├── SettingsDialog.tsx │ ├── SignInDialog.tsx │ ├── SorryDialog.tsx │ ├── Switch.tsx │ ├── TaskWindow.tsx │ ├── Tooltip.tsx │ ├── WindowButton.tsx │ ├── loader.tsx │ ├── motions │ │ ├── FadeIn.tsx │ │ ├── FadeOut.tsx │ │ ├── expand.tsx │ │ └── popin.tsx │ ├── pdf │ │ ├── MyDocument.tsx │ │ └── PDFButton.tsx │ ├── stores │ │ ├── agentStore.ts │ │ ├── helpers.ts │ │ ├── index.ts │ │ └── messageStore.ts │ ├── toast.tsx │ ├── types │ │ ├── index.ts │ │ └── propTypes.ts │ └── utils │ │ └── helpers.tsx ├── env │ ├── client.mjs │ ├── schema.mjs │ └── server.mjs ├── hooks │ ├── useAgent.ts │ ├── useAuth.ts │ ├── useScript.ts │ ├── useSettings.ts │ └── useTypeSafeTranslation.ts ├── layout │ └── default.tsx ├── middleware.ts ├── pages │ ├── _app.tsx │ ├── agent │ │ └── index.tsx │ ├── api │ │ ├── agent │ │ │ ├── analyze.ts │ │ │ ├── create.ts │ │ │ ├── execute.ts │ │ │ └── start.ts │ │ ├── auth │ │ │ └── [...nextauth].ts │ │ ├── responses.ts │ │ ├── trpc │ │ │ └── [trpc].ts │ │ └── webhooks │ │ │ └── stripe.ts │ └── index.tsx ├── server │ ├── api │ │ ├── root.ts │ │ ├── routers │ │ │ ├── account.ts │ │ │ ├── agentRouter.ts │ │ │ └── example.ts │ │ └── trpc.ts │ ├── auth.ts │ ├── db.ts │ └── redis.ts ├── services │ ├── agent-service.ts │ └── custom-tools │ │ └── serper.ts ├── styles │ └── globals.css ├── types │ ├── agentTypes.ts │ └── next-auth.d.ts └── utils │ ├── api.ts │ ├── constants.ts │ ├── helpers.ts │ ├── i18next.n.ts │ ├── interfaces.ts │ ├── languages.ts │ ├── parsers.ts │ ├── prompts.ts │ ├── stripe-utils.ts │ ├── types.ts │ └── whitespace.ts ├── tailwind.config.cjs └── tsconfig.json /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 | // README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node 3 | { 4 | "name": "AgentGPT development container", 5 | // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 | "image": "mcr.microsoft.com/devcontainers/typescript-node:0-18", 7 | 8 | // Features to add to the dev container. More info: https://containers.dev/features. 9 | "features": { 10 | "ghcr.io/devcontainers/features/common-utils:2": { 11 | "installZsh": true, 12 | "configureZshAsDefaultShell": true, 13 | "installOhMyZsh": true, 14 | "upgradePackages": true, 15 | "username": "devcontainer", 16 | "userUid": "automatic", 17 | "userGid": "automatic" 18 | }, 19 | "ghcr.io/devcontainers/features/docker-in-docker:2": { 20 | "moby": true, 21 | "azureDnsAutoDetection": true, 22 | "installDockerBuildx": true, 23 | "version": "latest", 24 | "dockerDashComposeVersion": "v2" 25 | }, 26 | "ghcr.io/devcontainers/features/git:1": { 27 | "ppa": true, 28 | "version": "os-provided" 29 | } 30 | }, 31 | 32 | // Use 'forwardPorts' to make a list of ports inside the container available locally. 33 | "forwardPorts": [ 34 | 3000 35 | ], 36 | 37 | // Use 'postCreateCommand' to run commands after the container is created. 38 | // "postCreateCommand": "yarn install", 39 | 40 | // Configure tool-specific properties. 41 | "customizations": { 42 | "vscode": { 43 | "extensions": [ 44 | "dbaeumer.vscode-eslint", 45 | "EditorConfig.EditorConfig" 46 | ] 47 | } 48 | } 49 | 50 | // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 51 | // "remoteUser": "root" 52 | } 53 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | **/.git 2 | **/node_modules 3 | **/idea 4 | **/.next 5 | **/aws 6 | **/.husky 7 | **/venv -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | # Deployment Environment: 2 | NODE_ENV=development 3 | 4 | # Next Auth config: 5 | # Generate a secret with `openssl rand -base64 32`, or visit https://generate-secret.vercel.app/ 6 | NEXTAUTH_SECRET=changeme 7 | NEXTAUTH_URL=http://localhost:3000 8 | 9 | # Prisma 10 | DATABASE_URL=file:./db.sqlite 11 | 12 | # External APIs: 13 | OPENAI_API_KEY=changeme 14 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "overrides": [ 3 | { 4 | "extends": [ 5 | "plugin:@typescript-eslint/recommended-requiring-type-checking" 6 | ], 7 | "files": ["*.ts", "*.tsx"], 8 | "parserOptions": { 9 | "project": "tsconfig.json" 10 | } 11 | } 12 | ], 13 | "parser": "@typescript-eslint/parser", 14 | "parserOptions": { 15 | "project": "./tsconfig.json" 16 | }, 17 | "ignorePatterns": ["*.js"], 18 | "plugins": ["@typescript-eslint"], 19 | "extends": ["next/core-web-vitals", "plugin:@typescript-eslint/recommended"], 20 | "rules": { 21 | "@typescript-eslint/consistent-type-imports": "warn", 22 | "@typescript-eslint/no-unused-vars": "off", 23 | "@typescript-eslint/no-unsafe-return": "off", 24 | "@typescript-eslint/no-unsafe-member-access": "off", 25 | "@typescript-eslint/no-unsafe-call": "off", 26 | "@typescript-eslint/no-unsafe-assignment": "off", 27 | "@typescript-eslint/no-unsafe-argument": "off", 28 | "@typescript-eslint/ban-ts-comment": "off" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: idosal 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATES/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ask a question 4 | url: https://github.com/reworkd/AgentGPT/discussions/categories/q-a 5 | about: Ask questions and discuss with other community members 6 | - name: Discuss the Project in Discord 7 | url: https://discord.gg/jjYCfaqu 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATES/docs.yml: -------------------------------------------------------------------------------- 1 | name: Documentation Improvement / Clarity 2 | description: Make a suggestion to improve the project documentation. 3 | labels: ['needs triage'] 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: '## :book: Documentation :book:' 8 | - type: markdown 9 | attributes: 10 | value: | 11 | * Ask questions in [Discord](https://discord.gg/jjYCfaqu). 12 | * Before you file an issue read the [Contributing guide](https://github.com/reworkd/AgentGPT/tree/main/.github/CONTRIBUTING.md). 13 | * Check to make sure someone hasn't already opened a [similar issue](https://github.com/reworkd/AgentGPT/issues). 14 | - type: textarea 15 | attributes: 16 | label: What piece of documentation is affected? 17 | description: Please link to the article you'd like to see updated. 18 | validations: 19 | required: true 20 | - type: textarea 21 | attributes: 22 | label: What part(s) of the article would you like to see updated? 23 | description: | 24 | - Give as much detail as you can to help us understand the change you want to see. 25 | - Why should the docs be changed? What use cases does it support? 26 | - What is the expected outcome? 27 | validations: 28 | required: true 29 | - type: textarea 30 | attributes: 31 | label: Additional Information 32 | description: Add any other context or screenshots about the feature request here. 33 | validations: 34 | required: false 35 | - type: checkboxes 36 | id: acknowledgements 37 | attributes: 38 | label: 'Acknowledgements' 39 | description: 'Please confirm the following:' 40 | options: 41 | - label: 'My issue title is concise, descriptive, and in title casing.' 42 | required: true 43 | - label: 'I have searched the existing issues to make sure this feature has not been requested yet.' 44 | required: true 45 | - label: 'I have provided enough information for the maintainers to understand and evaluate this request.' 46 | required: true 47 | -------------------------------------------------------------------------------- /.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Due to the nature of the fast development that is happening in this project, only the latest released version can be supported. 6 | 7 | ## Reporting a Vulnerability 8 | 9 | If you find a vulnerability, please either report a vulnerability [here](https://github.com/reworkd/AgentGPT/security) or contact us on twitter @asimdotshrestha. Please don't create a GitHub before contacting a maintainer to allow us to fix the vulnerability before others can take advantage of it. 10 | -------------------------------------------------------------------------------- /.github/SUPPORT.md: -------------------------------------------------------------------------------- 1 | # Support 2 | 3 | If you need help with this project or have questions, please: 4 | 5 | 1. Check the documentation. 6 | 2. Search the existing issues and pull requests. 7 | 3. Create a new issue if your question is not answered or your problem is not solved. 8 | 9 | Please note that this project is maintained by volunteers who have limited availability. We'll do our best to address your questions and concerns in a timely manner. 10 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # Please see the documentation for all configuration options: 2 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 3 | 4 | version: 2 5 | updates: 6 | - package-ecosystem: npm 7 | directory: / 8 | schedule: 9 | interval: weekly -------------------------------------------------------------------------------- /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | name: Node.js CI 2 | 3 | on: 4 | push: 5 | branches: ["main"] 6 | pull_request: 7 | branches: ["main"] 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v3 15 | - name: Use Node.js 18 16 | uses: actions/setup-node@v3 17 | with: 18 | node-version: 18.x 19 | cache: "npm" 20 | - run: npm ci 21 | - run: npm test 22 | env: 23 | OPENAI_API_KEY: sk-0000000000 24 | - run: ./prisma/useSqlite.sh && npm run postinstall 25 | 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # database 12 | /prisma/db.sqlite 13 | /prisma/db.sqlite-journal 14 | /db/db.sqlite 15 | 16 | # next.js 17 | /.next/ 18 | /out/ 19 | next-env.d.ts 20 | 21 | # production 22 | /build 23 | 24 | # misc 25 | .DS_Store 26 | *.pem 27 | 28 | # debug 29 | npm-debug.log* 30 | yarn-debug.log* 31 | yarn-error.log* 32 | .pnpm-debug.log* 33 | 34 | # local env files 35 | # do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables 36 | .env* 37 | 38 | # vercel 39 | .vercel 40 | 41 | # typescript 42 | *.tsbuildinfo 43 | .idea 44 | .swc 45 | 46 | # extracted language files 47 | /public/locales/$LOCALES 48 | 49 | .eslintcache 50 | 51 | # Sentry Auth Token 52 | .sentryclirc 53 | /volumes/ 54 | -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #npx lint-staged --allow-empty 4 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "editorconfig.editorconfig" 4 | ] 5 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Next.js: debug server-side", 6 | "type": "node-terminal", 7 | "request": "launch", 8 | "command": "npm run dev" 9 | }, 10 | { 11 | "name": "Next.js: debug client-side", 12 | "type": "chrome", 13 | "request": "launch", 14 | "url": "http://localhost:3000" 15 | }, 16 | { 17 | "name": "Next.js: debug full stack", 18 | "type": "node-terminal", 19 | "request": "launch", 20 | "command": "npm run dev", 21 | "serverReadyAction": { 22 | "pattern": "started server on .+, url: (https?://.+)", 23 | "uriFormat": "%s", 24 | "action": "debugWithChrome" 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Use the official Node.js image as the base image 2 | FROM node:19-alpine 3 | 4 | ARG NODE_ENV 5 | 6 | ENV NODE_ENV=$NODE_ENV 7 | 8 | # Set the working directory 9 | WORKDIR /app 10 | 11 | # Copy package.json and package-lock.json to the working directory 12 | COPY package*.json ./ 13 | 14 | # Install dependencies 15 | RUN npm ci 16 | 17 | # Copy the rest of the application code 18 | COPY . . 19 | 20 | # Build the Next.js app 21 | RUN npm run build 22 | 23 | # Expose the port the app will run on 24 | EXPOSE 3000 25 | 26 | ENTRYPOINT ["sh", "entrypoint.sh"] 27 | 28 | # Start the application 29 | CMD ["npm", "start"] 30 | -------------------------------------------------------------------------------- /__tests__/extract-array.test.ts: -------------------------------------------------------------------------------- 1 | import { extractArray } from "../src/utils/helpers"; 2 | 3 | describe("Strings should be extracted from arrays correctly", () => { 4 | it("simple", () => { 5 | const modelResult = ` 6 | \`\`\`json 7 | [ 8 | "Research and implement natural language processing techniques to improve task creation accuracy.", 9 | "Develop a machine learning model to predict the most relevant tasks for users based on their past activity.", 10 | "Integrate with external tools and services to provide users with additional features such as task prioritization and scheduling." 11 | ] 12 | \`\`\` 13 | `; 14 | expect(extractArray(modelResult).length).toBe(3); 15 | expect(extractArray(modelResult).at(2)).toBe( 16 | "Integrate with external tools and services to provide users with additional features such as task prioritization and scheduling." 17 | ); 18 | }); 19 | 20 | it("fails with single quotes", () => { 21 | const modelResult = ` [ 22 | 'Search Reddit for current trending topics related to cats', 23 | 'Identify the most upvoted posts about cats on Reddit' 24 | ]`; 25 | 26 | expect(extractArray(modelResult).length).toBe(0); 27 | }); 28 | 29 | it("works with no whitespace", () => { 30 | const modelResult = `["Item 1","Item 2","Item 3"]`; 31 | 32 | expect(extractArray(modelResult).length).toBe(3); 33 | expect(extractArray(modelResult).at(1)).toBe("Item 2"); 34 | }); 35 | 36 | it("returns an empty array for non-array strings", () => { 37 | const modelResult = `This is not an array`; 38 | 39 | expect(extractArray(modelResult)).toEqual([]); 40 | expect(extractArray(modelResult).length).toBe(0); 41 | }); 42 | 43 | it("returns an empty array for empty arrays", () => { 44 | const modelResult = `[]`; 45 | 46 | expect(extractArray(modelResult)).toEqual([]); 47 | expect(extractArray(modelResult).length).toBe(0); 48 | }); 49 | 50 | it("works with an array of one element", () => { 51 | const modelResult = `[ 52 | "Only one element" 53 | ]`; 54 | 55 | expect(extractArray(modelResult)).toEqual(["Only one element"]); 56 | expect(extractArray(modelResult).length).toBe(1); 57 | expect(extractArray(modelResult).at(0)).toBe("Only one element"); 58 | }); 59 | }); 60 | -------------------------------------------------------------------------------- /__tests__/remove-task-prefix.ts: -------------------------------------------------------------------------------- 1 | import { removeTaskPrefix } from "../src/utils/helpers"; 2 | 3 | describe("removeTaskPrefix", () => { 4 | test('removes "Task: "', () => { 5 | const input = "Task: This is a sample task"; 6 | const output = removeTaskPrefix(input); 7 | expect(output).toBe("This is a sample task"); 8 | }); 9 | 10 | test('removes "Task {N}: "', () => { 11 | const input = 12 | "Task 1: Perform a comprehensive analysis of the current system's performance."; 13 | const output = removeTaskPrefix(input); 14 | expect(output).toBe( 15 | "Perform a comprehensive analysis of the current system's performance." 16 | ); 17 | }); 18 | 19 | test('removes "Task {N}. "', () => { 20 | const input = "Task 2. Create a python script"; 21 | const output = removeTaskPrefix(input); 22 | expect(output).toBe("Create a python script"); 23 | }); 24 | 25 | test('removes "{N} - "', () => { 26 | const input = "5 - This is a sample task"; 27 | const output = removeTaskPrefix(input); 28 | expect(output).toBe("This is a sample task"); 29 | }); 30 | 31 | test('removes "{N}: "', () => { 32 | const input = "2: This is a sample task"; 33 | const output = removeTaskPrefix(input); 34 | expect(output).toBe("This is a sample task"); 35 | }); 36 | 37 | test("does not modify strings without matching prefixes", () => { 38 | const input = "This is a sample task without a prefix"; 39 | const output = removeTaskPrefix(input); 40 | expect(output).toBe(input); 41 | }); 42 | }); 43 | -------------------------------------------------------------------------------- /__tests__/stripe.sh: -------------------------------------------------------------------------------- 1 | stripe listen --forward-to localhost:3000/api/webhooks/stripe -------------------------------------------------------------------------------- /__tests__/whitespace.test.ts: -------------------------------------------------------------------------------- 1 | import { isEmptyOrBlank } from "../src/utils/whitespace"; 2 | 3 | describe("WhiteSpace and empty string should return true", () => { 4 | test("Empty string should return true", () => { 5 | const emptyString = ""; 6 | expect(isEmptyOrBlank(emptyString)).toEqual(true); 7 | }) 8 | test("WhiteSpace string should return true", () => { 9 | const whiteSpaceString = " "; 10 | expect(isEmptyOrBlank(whiteSpaceString)).toEqual(true); 11 | }) 12 | test("NewLine should return true", () => { 13 | const newLineString = "\n\n"; 14 | expect(isEmptyOrBlank(newLineString)).toEqual(true); 15 | }) 16 | }) 17 | -------------------------------------------------------------------------------- /aws/cf/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd "$(dirname "$0")" 3 | 4 | aws cloudformation create-stack --stack-name agent \ 5 | --template-body file:///$PWD/agent.cf.json -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.0" 2 | services: 3 | autogpt: 4 | build: 5 | context: . 6 | dockerfile: Dockerfile 7 | ports: 8 | - "3000:3000" 9 | volumes: 10 | - .env.docker:/app/.env 11 | - ./db:/app/db 12 | -------------------------------------------------------------------------------- /entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | 3 | # copy .env file if not exists 4 | [ ! -f .env ] && cp .env.example .env 5 | 6 | # change schema.prisma 7 | sed -ie 's/mysql/sqlite/g' prisma/schema.prisma 8 | sed -ie 's/@db.Text//' prisma/schema.prisma 9 | 10 | # Add Prisma and generate Prisma client 11 | npx prisma generate 12 | # Generate db when not exists 13 | source .env 14 | if [[ ! -f "/app/prisma/${DATABASE_URL:5}" ]]; then 15 | npx prisma migrate dev --name init 16 | npx prisma db push 17 | fi 18 | 19 | # run cmd 20 | exec "$@" 21 | -------------------------------------------------------------------------------- /jest.config.cjs: -------------------------------------------------------------------------------- 1 | const nextJest = require("next/jest"); 2 | 3 | const createJestConfig = nextJest({ 4 | // Provide the path to your Next.js app to load next.config.js and .env files in your test environment 5 | dir: "./", 6 | }); 7 | 8 | // Add any custom config to be passed to Jest 9 | /** @type {import('jest').Config} */ 10 | const customJestConfig = { 11 | // Add more setup options before each test is run 12 | // setupFilesAfterEnv: ['/jest.setup.js'], 13 | // if using TypeScript with a baseUrl set to the root directory then you need the below for alias' to work 14 | moduleDirectories: ["node_modules", "/"], 15 | testEnvironment: "jest-environment-jsdom", 16 | }; 17 | 18 | // createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async 19 | module.exports = createJestConfig(customJestConfig); 20 | -------------------------------------------------------------------------------- /next-i18next.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | i18n: { 3 | defaultLocale: "en", 4 | locales: [ 5 | "en", 6 | "hu", 7 | "fr", 8 | "de", 9 | "it", 10 | "ja", 11 | "lt", 12 | "zh", 13 | "ko", 14 | "pl", 15 | "pt", 16 | "ro", 17 | "ru", 18 | "uk", 19 | "es", 20 | "nl", 21 | "sk", 22 | "hr", 23 | ], 24 | }, 25 | localePath: typeof window === "undefined" ? "./public/locales" : "/locales", 26 | debug: false, 27 | reloadOnPrerender: process.env.NODE_ENV === "development", 28 | defaultNS: "common", 29 | ns: [ 30 | "common", 31 | "help", 32 | "settings", 33 | "chat", 34 | "agent", 35 | "errors", 36 | "languages", 37 | "drawer", 38 | "indexPage", 39 | ], 40 | react: { 41 | useSuspense: false, 42 | }, 43 | saveMissing: true, 44 | }; 45 | -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | /** 3 | * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. 4 | * This is especially useful for Docker builds. 5 | */ 6 | // !process.env.SKIP_ENV_VALIDATION && (await import("./src/env/server.mjs")); 7 | 8 | // import nextI18NextConfig from './next-i18next.config.js' 9 | 10 | /** @type {import("next").NextConfig} */ 11 | const config = { 12 | reactStrictMode: true, 13 | /* If trying out the experimental appDir, comment the i18n config out 14 | * @see https://github.com/vercel/next.js/issues/41980 */ 15 | i18n: { 16 | locales: ["en"], 17 | defaultLocale: "en", 18 | }, 19 | webpack: function (config, _) { 20 | config.experiments = { asyncWebAssembly: true, syncWebAssembly: true, layers: true, topLevelAwait: true }; 21 | return config; 22 | } 23 | }; 24 | // export default withSentryConfig(config, { 25 | // // For all available options, see https://github.com/getsentry/sentry-webpack-plugin#options 26 | // 27 | // // Suppresses source map uploading logs during build 28 | // silent: true, 29 | // org: "reworkd", 30 | // project: "agentgpt", 31 | // }, { 32 | // // For all available options, see https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ 33 | // // Upload a larger set of source maps for prettier stack traces (increases build time) 34 | // widenClientFileUpload: true, 35 | // 36 | // // Transpiles SDK to be compatible with IE11 (increases bundle size) 37 | // transpileClientSDK: false, 38 | // 39 | // // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) 40 | // tunnelRoute: "/monitoring", 41 | // 42 | // // Hides source maps from generated client bundles 43 | // hideSourceMaps: true, 44 | // 45 | // // Automatically tree-shake Sentry logger statements to reduce bundle size 46 | // disableLogger: true, 47 | // environment: process.env.NEXT_PUBLIC_VERCEL_ENV, 48 | // }); 49 | 50 | export default config; 51 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /prettier.config.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import("prettier").Config} */ 2 | module.exports = { 3 | plugins: [require.resolve("prettier-plugin-tailwindcss")], 4 | }; 5 | -------------------------------------------------------------------------------- /prisma/useSqlite.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd "$(dirname "$0")" 3 | 4 | sed -ie 's/mysql/sqlite/g' schema.prisma 5 | sed -ie 's/@db.Text//' schema.prisma 6 | -------------------------------------------------------------------------------- /public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/public/banner.png -------------------------------------------------------------------------------- /public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/public/favicon-16x16.png -------------------------------------------------------------------------------- /public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/public/favicon-32x32.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/public/favicon.ico -------------------------------------------------------------------------------- /public/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/public/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /public/locales/de/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Wir haben außergewöhnlichen Verkehr, erwarten Sie Verzögerungen und Ausfälle, wenn Sie keinen eigenen API-Schlüssel verwenden 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Erstellen Sie einen Agenten, indem Sie einen Namen/Ziel hinzufügen und auf Bereitstellen klicken!", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Sie können Ihren eigenen OpenAI API-Schlüssel im Einstellungen-Tab für höhere Limits bereitstellen!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Unterstützen Sie die Weiterentwicklung von AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Bitte erwägen Sie, das Projekt auf GitHub zu unterstützen.", 7 | "SUPPORT_NOW": "Jetzt unterstützen 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Beginne ein neues Ziel:", 9 | "THINKING": "Denke nach...", 10 | "TASK_ADDED": "Aufgabe hinzugefügt:", 11 | "COMPLETING": "Fertigstellen:", 12 | "NO_MORE_TASKS": "Keine weiteren Unteraufgaben für:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Text wurde in die Zwischenablage kopiert", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Text konnte nicht in die Zwischenablage kopiert werden", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Starten Sie neu, wenn dies länger als 30 Sekunden dauert)" 16 | } -------------------------------------------------------------------------------- /public/locales/de/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Speichern", 3 | "IMAGE": "Bild", 4 | "COPY": "Kopieren", 5 | "EXPORT": "Exportieren", 6 | "RESET": "Zurücksetzen", 7 | "CLOSE": "Schließen", 8 | "LOOP": "Schleife", 9 | "CURRENT_TASKS": "Aktuelle Aufgaben", 10 | "ADDING_TASK": "Aufgabe Hinzufügen" 11 | } -------------------------------------------------------------------------------- /public/locales/de/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Hilfe", 3 | "SETTINGS_BUTTON": "Einstellungen", 4 | "MY_AGENTS": "Meine Agenten", 5 | "SIGN_IN_NOTICE": "Melden Sie sich an, um Ihre Agenten zu speichern und Ihr Konto zu verwalten!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Sie müssen zuerst Ihren ersten Agenten erstellen und speichern, bevor hier etwas angezeigt wird!", 7 | "SIGN_IN": "Anmelden", 8 | "SIGN_OUT": "Abmelden", 9 | "ACCOUNT" : "Konto", 10 | "USER_IMAGE": "Benutzerbild" 11 | } -------------------------------------------------------------------------------- /public/locales/de/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "Fehler beim Zugriff auf den OpenAI API-Schlüssel. Bitte überprüfen Sie den API-Schlüssel oder versuchen Sie es später erneut.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "Fehler beim Hinzufügen zusätzlicher Aufgaben. Möglicherweise kann unser Modell die Antwort nicht handhaben und hat dies verursacht. Fortfahren...", 4 | "RATE_LIMIT_EXCEEDED": "Maximale Anzahl an Anfragen erreicht! Bitte langsamer machen...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Dieser Agent hat die maximale Anzahl ausführbarer Durchläufe erreicht. Um Geld zu sparen, wird dieser Agent jetzt gestoppt... Die maximale Anzahl von Agentenläufen kann in den Einstellungen konfiguriert werden.", 6 | "DEMO_LOOPS_REACHED": "Entschuldigung, da dies eine Demoversion ist, können wir unsere Agenten nicht zu lange laufen lassen. Hinweis: Wenn Sie längere Laufzeiten wünschen, geben Sie bitte einen eigenen API-Schlüssel in den Einstellungen an. Stoppen...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Agent manuell gestoppt.", 8 | "ALL_TASKS_COMPLETETD": "Alle Aufgaben wurden abgeschlossen. Stoppen...", 9 | "ERROR_API_KEY_QUOTA": "Fehler bei der Verwendung des OpenAI API-Schlüssels. Sie haben Ihre derzeitige Quote überschritten. Bitte überprüfen Sie Ihre Abrechnungsinformationen.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "FEHLER: Ihr OpenAI API-Schlüssel hat keinen Zugriff auf GPT-4. Sie müssen sich zuerst auf der OpenAI-Warteliste anmelden. (Dies unterscheidet sich vom ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "Fehler beim Abrufen der Ausgangsaufgaben. Versuchen Sie es erneut, formulieren Sie das Ziel des Agenten klarer oder passen Sie es so an, dass es unserem Modell entspricht. Stoppen...", 12 | "INVALID_OPENAI_API_KEY": "FEHLER ungültiger OpenAI-API-Schlüssel" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/de/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Willkommen bei AgentGPT", 3 | "INTRODUCING_AGENTGPT": "ermöglicht es Ihnen, eigenständige KI-Agenten über Ihren Browser zu konfigurieren und auszuführen. Benennen Sie Ihren individuellen KI-Agenten und definieren Sie sein Ziel. Der KI-Agent versucht, das definierte Ziel zu erreichen, indem er Aufgaben erstellt, sie ausführt und ihre Ergebnisse auswertet 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Diese Plattform ist derzeit in der Beta-Version und wir arbeiten derzeit an folgenden Funktionen:", 5 | "LONG_TERM_MEMORY": "Langzeitgedächtnis 🧠", 6 | "WEB_BROWSING": "Web-Browsing 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interaktion mit Websites und Menschen 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Folgen Sie uns auf folgenden Wegen:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/de/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Beta", 3 | "HEADING_DESCRIPTION": "Stellen Sie autonome KI-Agenten in Ihrem Browser zusammen, konfigurieren Sie sie und installieren Sie sie.", 4 | "AGENT_NAME": "Name", 5 | "LABEL_AGENT_GOAL": "Ziel", 6 | "PLACEHOLDER_AGENT_GOAL": "Machen Sie die Welt zu einem besseren Ort", 7 | "BUTTON_DEPLOY_AGENT": "Agent ausführen", 8 | "BUTTON_STOP_AGENT": "Agent stoppen" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/de/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Englisch", 3 | "FRENCH": "Französisch", 4 | "SPANISH": "Spanisch", 5 | "GERMAN": "Deutsch", 6 | "JAPANESE": "Japanisch", 7 | "KOREAN": "Koreanisch", 8 | "CHINESE": "Chinesisch", 9 | "PORTUGEES": "Portugiesisch", 10 | "ITALIAN": "Italienisch", 11 | "DUTCH": "Niederländisch", 12 | "POLSKI": "Polnisch", 13 | "HUNGARIAN": "Ungarisch", 14 | "ROMANIAN": "Rumänisch", 15 | "SLOVAK": "Slowakisch" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/de/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperatur", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Höhere Werte machen die Ausgabe zufälliger, während niedrigere Werte sie fokussierter und bestimmter machen.", 4 | "LOOP": "Schleife", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Steuerung der maximalen Anzahl von Schleifen, die vom Agenten ausgeführt werden (höhere Werte führen zu mehr API-Aufrufen).", 6 | "TOKENS": "Token", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Steuerung der maximalen Anzahl von Tokens, die bei jedem API-Aufruf verwendet werden (höhere Werte führen zu detaillierteren Antworten, sind aber teurer).", 8 | "SETTINGS_DIALOG_HEADER": "Einstellungen ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Hier können Sie Ihren OpenAI API-Schlüssel hinzufügen. Dies bedeutet, dass Sie für die Verwendung Ihres eigenen OpenAI-Tokens bezahlen müssen, aber einen größeren Zugang zu ChatGPT erhalten! Außerdem können Sie jedes von OpenAI angebotene Modell auswählen.", 10 | "INFO_TO_USE_GPT4": "Um das GPT-4-Modell zu verwenden, muss auch der API-Schlüssel angegeben werden. Sie können es", 11 | "HERE": "hier", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(Das ChatGPT Plus-Abonnement funktioniert nicht)", 13 | "API_KEY": "API-Schlüssel", 14 | "ADVANCED_SETTINGS": "Erweiterte Einstellungen", 15 | "NOTE_TO_GET_OPENAI_KEY": "HINWEIS: Um den API-Schlüssel zu erhalten, müssen Sie ein OpenAI-Konto registrieren, das Sie unter dem folgenden Link tun können:", 16 | "LINK": "API-Schlüssel beantragen", 17 | "NOTE_API_KEY_USAGE": "Dieser Schlüssel wird nur in der aktuellen Browsersitzung verwendet.", 18 | "LABEL_MODEL": "Modell", 19 | "LANG": "Sprache" 20 | } -------------------------------------------------------------------------------- /public/locales/en/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 We are experiencing exceptional traffic, expect delays and failures if you do not use your own API key🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Create an agent by adding a name / goal, and hitting deploy!", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 You can provide your own OpenAI API key in the settings tab for increased limits!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Help support the advancement of AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Please consider sponsoring the project on GitHub.", 7 | "SUPPORT_NOW": "Support now 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Embarking on a new goal:", 9 | "THINKING": "Thinking...", 10 | "TASK_ADDED": "Added task:", 11 | "COMPLETING": "Completing:", 12 | "NO_MORE_TASKS": "No more subtasks for:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Text copied to clipboard", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Unable to copy text to clipboard", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Restart if this takes more than 30 seconds)" 16 | } -------------------------------------------------------------------------------- /public/locales/en/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Save", 3 | "IMAGE": "Image", 4 | "COPY": "Copy", 5 | "EXPORT": "Export", 6 | "RESET": "Reset", 7 | "CLOSE": "Close", 8 | "LOOP": "Loop", 9 | "CURRENT_TASKS": "Current Tasks", 10 | "ADDING_TASK": "Adding Task", 11 | "COPIED_TO_CLIPBOARD": "Copied to clipboard! 🚀", 12 | "CREATE_AN_AGENT_DESCRIPTION": "Create an agent by adding a name / goal, and hitting deploy!" 13 | } -------------------------------------------------------------------------------- /public/locales/en/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Help", 3 | "SETTINGS_BUTTON": "Settings", 4 | "SUPPORT_BUTTON": "Support", 5 | "MY_AGENTS": "My agents", 6 | "SIGN_IN_NOTICE": " to be able to save agents and manage your account!", 7 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "You need to create and save your first agent before anything shows up here!", 8 | "SIGN_IN": "Sign In", 9 | "SIGN_OUT": "Sign Out", 10 | "ACCOUNT": "Account", 11 | "USER_IMAGE": "User Image" 12 | } 13 | -------------------------------------------------------------------------------- /public/locales/en/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "ERROR accessing OpenAI's API. Please check your API key or try again later", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "ERROR adding additional task(s). It might have been against our model's policies to run them. Continuing.", 4 | "RATE_LIMIT_EXCEEDED": "Rate limit exceeded! Please slow down...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "This agent has maxed out on loops. To save your wallet, this agent is shutting down. You can configure the number of loops in the advanced settings.", 6 | "DEMO_LOOPS_REACHED": "We're sorry, because this is a demo, we cannot have our agents running for too long. Note, if you desire longer runs, please provide your own API key in Settings. Shutting down.", 7 | "AGENT_MANUALLY_SHUT_DOWN": "The agent has been manually shutdown.", 8 | "ALL_TASKS_COMPLETETD": "All tasks completed. Shutting down.", 9 | "ERROR_API_KEY_QUOTA": "ERROR using your OpenAI API key. You've exceeded your current quota, please check your plan and billing details.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "ERROR your API key does not have GPT-4 access. You must first join OpenAI's wait-list. (This is different from ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "ERROR retrieving initial tasks array. Retry, make your goal more clear, or revise your goal such that it is within our model's policies to run. Shutting Down.", 12 | "INVALID_OPENAI_API_KEY": "ERROR invalid OpenAI API-key" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/en/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Welcome to AgentGPT", 3 | "INTRODUCING_AGENTGPT": "allows you to configure and deploy Autonomous AI agents. Name your custom AI and have it embark on any goal imaginable. It will attempt to reach the goal by thinking of tasks to do, executing them, and learning from the results 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "This platform is currently in beta, we are currently working on:", 5 | "LONG_TERM_MEMORY": "Long term memory 🧠", 6 | "WEB_BROWSING": "Web browsing 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interaction with websites and people 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Follow the journey below:", 9 | "TO_LEARN_MORE_ABOUT_AGENTGPT": "To learn more about AgentGPT, its roadmap, FAQ, etc, visit the ", 10 | "AGENTGPT_DOCUMENTATION": "AgentGPT's Documentation" 11 | } -------------------------------------------------------------------------------- /public/locales/en/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Beta", 3 | "HEADING_DESCRIPTION": "Assemble, configure, and deploy autonomous AI Agents in your browser.", 4 | "AGENT_NAME": "Name", 5 | "LABEL_AGENT_GOAL": "Goal", 6 | "PLACEHOLDER_AGENT_GOAL": "Make the world a better place", 7 | "BUTTON_DEPLOY_AGENT": "Deploy Agent", 8 | "BUTTON_STOP_AGENT": "Stop Agent" 9 | } -------------------------------------------------------------------------------- /public/locales/en/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "English", 3 | "FRENCH": "French", 4 | "SPANISH": "Spanish", 5 | "GERMAN": "Deutsch", 6 | "JAPANESE": "Japanese", 7 | "KOREAN": "Korean", 8 | "CHINESE": "Chinese", 9 | "PORTUGEES": "Portugees", 10 | "ITALIAN": "Italian", 11 | "DUTCH": "Dutch", 12 | "POLSKI": "Polski", 13 | "HUNGARIAN": "Hungarian", 14 | "ROMANIAN": "Romanian", 15 | "SLOVAK": "Slovak" 16 | } -------------------------------------------------------------------------------- /public/locales/en/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temp.", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Higher values will make the output more random, while lower values make the output more focused and deterministic.", 4 | "LOOP": "Loop", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Controls the maximum number of loops that the agent will run (higher value will make more API calls).", 6 | "TOKENS": "Tokens", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Controls the maximum number of tokens used in each API call (higher value will make responses more detailed but cost more).", 8 | "SETTINGS_DIALOG_HEADER": "Settings ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Here you can add your OpenAI API key. This will require you to pay for your own OpenAI usage but give you greater access to AgentGPT! You can additionally select any model OpenAI offers.", 10 | "INFO_TO_USE_GPT4": "To use the GPT-4 model, you need to also provide the API key for GPT-4. You can request for it", 11 | "HERE": "here", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(ChatGPT Plus subscription will not work)", 13 | "API_KEY": "Key", 14 | "ADVANCED_SETTINGS": "Advanced settings", 15 | "NOTE_TO_GET_OPENAI_KEY": "NOTE: To get a key, sign up for an OpenAI account and visit the following", 16 | "LINK": "link", 17 | "NOTE_API_KEY_USAGE": "This key is only used in the current browser session", 18 | "LABEL_MODEL": "Model", 19 | "LANG": "Language", 20 | "INVALID_OPENAI_API_KEY": "Invalid API key!" 21 | } -------------------------------------------------------------------------------- /public/locales/es/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Estamos experimentando un tráfico excepcional, espere retrasos y fallos si no utiliza su propia clave API 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> ¡Cree un agente agregando un nombre/objetivo y presionando desplegar!", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 ¡Puede proporcionar su propia clave de API de OpenAI en la pestaña de configuración para aumentar los límites!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Ayude a apoyar el avance de AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Considere patrocinar el proyecto en GitHub.", 7 | "SUPPORT_NOW": "Apoye ahora 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Embarcándose en un nuevo objetivo:", 9 | "THINKING": "Pensando...", 10 | "TASK_ADDED": "Tarea añadida:", 11 | "COMPLETING": "Completando:", 12 | "NO_MORE_TASKS": "No hay más sub-tareas para:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Texto copiado al portapapeles", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "No se pudo copiar el texto al portapapeles", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Reiniciar si esto tarda más de 30 segundos)" 16 | } -------------------------------------------------------------------------------- /public/locales/es/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Guardar", 3 | "IMAGE": "Imagen", 4 | "COPY": "Copiar", 5 | "EXPORT": "Exportar", 6 | "RESET": "Reiniciar", 7 | "CLOSE": "Cerrar", 8 | "LOOP": "Bucle", 9 | "CURRENT_TASKS": "Tareas actuales", 10 | "ADDING_TASK": "Añadiendo tarea" 11 | } -------------------------------------------------------------------------------- /public/locales/es/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Ayuda", 3 | "SETTINGS_BUTTON": "Configuraciones", 4 | "MY_AGENTS": "Mis agentes", 5 | "SIGN_IN_NOTICE": "¡Inicie sesión para guardar sus agentes y administrar su cuenta!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "¡Primero debe crear y guardar su primer agente antes de que algo aparezca aquí!", 7 | "SIGN_IN": "Iniciar sesión", 8 | "SIGN_OUT": "Cerrar sesión", 9 | "ACCOUNT" : "Cuenta", 10 | "USER_IMAGE": "Imagen de usuario" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/es/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "Error al acceder a la clave de API de OpenAI. Por favor, verifique la clave de API o intente más tarde.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "Error al agregar tarea(s) adicional(es). Es posible que nuestro modelo no pueda manejar la respuesta y esto lo haya generado. Continuando...", 4 | "RATE_LIMIT_EXCEEDED": "¡Ha alcanzado el número máximo de consultas! Por favor, disminuya la velocidad...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Este agente ha alcanzado el número máximo de rondas ejecutables. Para salvar su billetera, este agente se detendrá ahora... El número máximo de rondas de ejecución del agente se puede configurar en la configuración.", 6 | "DEMO_LOOPS_REACHED": "Lo siento, como esta es una aplicación de demostración, no podemos ejecutar nuestros agentes durante mucho tiempo. Nota: Si desea ejecuciones más largas, proporcione una clave de API personalizada en Configuración. Deteniendo...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Agente apagado manualmente.", 8 | "ALL_TASKS_COMPLETETD": "Todas las tareas han sido completadas. Deteniendo...", 9 | "ERROR_API_KEY_QUOTA": "Error al usar la clave de API de OpenAI. Ha superado su cuota actual, por favor, revise su información de facturación.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "ERROR: Su clave de API de OpenAI no tiene acceso a GPT-4. Primero debe registrarse en la lista de espera de OpenAI. (Esto es diferente de ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "Error al recuperar las tareas iniciales. Inténtelo de nuevo, formule el objetivo del agente de manera más clara o modifíquelo de tal manera que se adapte a nuestro modelo. Deteniendo...", 12 | "INVALID_OPENAI_API_KEY": "ERROR invalid OpenAI API-key" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/es/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Bienvenido a AgentGPT", 3 | "INTRODUCING_AGENTGPT": "le permite configurar y ejecutar agentes de inteligencia artificial autónomos a través de su navegador. Nombra tu agente de IA personalizado y define su objetivo. El agente de IA intentará alcanzar el objetivo definido mediante la creación de tareas, su ejecución y la evaluación de sus resultados 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Esta plataforma está actualmente en versión beta y estamos trabajando en las siguientes características:", 5 | "LONG_TERM_MEMORY": "Memoria a largo plazo 🧠", 6 | "WEB_BROWSING": "Navegación web 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interacción con sitios web y personas 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Síganos en las siguientes rutas:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/es/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Beta", 3 | "HEADING_DESCRIPTION": "Ensamble, configure e instale agentes de IA autónomos en su navegador.", 4 | "AGENT_NAME": "Nombre", 5 | "LABEL_AGENT_GOAL": "Objetivo", 6 | "PLACEHOLDER_AGENT_GOAL": "Hacer del mundo un lugar mejor", 7 | "BUTTON_DEPLOY_AGENT": "Ejecutar agente", 8 | "BUTTON_STOP_AGENT": "Detener agente" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/es/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Inglés", 3 | "FRENCH": "Francés", 4 | "SPANISH": "Español", 5 | "GERMAN": "Alemán", 6 | "JAPANESE": "Japonés", 7 | "KOREAN": "Coreano", 8 | "CHINESE": "Chino", 9 | "PORTUGEES": "Portugués", 10 | "ITALIAN": "Italiano", 11 | "DUTCH": "Holandés", 12 | "POLSKI": "Polaco", 13 | "HUNGARIAN": "Húngaro", 14 | "ROMANIAN": "Rumano", 15 | "SLOVAK": "Eslovaco" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/es/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperatura", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Valores más altos hacen que la salida sea más aleatoria, mientras que valores más bajos la hacen más enfocada y definida.", 4 | "LOOP": "Bucle", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Controla el número máximo de bucles que el agente puede ejecutar (un valor más alto resultará en más llamadas a la API).", 6 | "TOKENS": "Tokens", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Controla el número máximo de tokens utilizados en cada llamada a la API (un valor más alto resultará en respuestas más detalladas, pero también será más costoso).", 8 | "SETTINGS_DIALOG_HEADER": "Configuración ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Aquí puedes agregar tu clave de API de OpenAI. Esto significa que tendrás que pagar por el uso de tu propio token de OpenAI, ¡pero obtendrás un mayor acceso a ChatGPT! Además, también puedes elegir cualquier modelo ofrecido por OpenAI.", 10 | "INFO_TO_USE_GPT4": "Para utilizar el modelo GPT-4, también es necesario proporcionar la clave de API. Puedes obtenerla", 11 | "HERE": "aquí", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(La suscripción a ChatGPT Plus no funcionará)", 13 | "API_KEY": "API", 14 | "ADVANCED_SETTINGS": "Configuración avanzada", 15 | "NOTE_TO_GET_OPENAI_KEY": "NOTA: Para obtener una clave de API, necesitas registrarte en una cuenta de OpenAI, lo cual puedes hacer en el siguiente enlace:", 16 | "LINK": "Solicita una clave de API", 17 | "NOTE_API_KEY_USAGE": "Esta clave solo se utiliza en la sesión actual del navegador.", 18 | "LABEL_MODEL": "Modelo", 19 | "LANG": "Idioma" 20 | } 21 | -------------------------------------------------------------------------------- /public/locales/fr/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Nous rencontrons un trafic exceptionnel, prévoyez des retards et des échecs si vous n'utilisez pas votre propre clé API 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Créez un agent en ajoutant un nom / objectif et en appuyant sur le déploiement !", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Vous pouvez fournir votre propre clé OpenAI API dans l'onglet des paramètres pour des limites accrues !", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Aidez à soutenir l'avancement d'AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Veuillez envisager de parrainer le projet sur GitHub.", 7 | "SUPPORT_NOW": "Soutenir maintenant 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Se lancer dans un nouvel objectif :", 9 | "THINKING": "Réfléchir...", 10 | "TASK_ADDED": "Tâche ajoutée :", 11 | "COMPLETING": "En cours d'achèvement :", 12 | "NO_MORE_TASKS": "Plus de sous-tâches pour :", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Texte copié dans le presse-papiers", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Impossible de copier le texte dans le presse-papiers", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Redémarrez si cela prend plus de 30 secondes)" 16 | } -------------------------------------------------------------------------------- /public/locales/fr/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Enregistrer", 3 | "IMAGE": "Image", 4 | "COPY": "Copier", 5 | "EXPORT": "Exporter", 6 | "RESET": "Réinitialiser", 7 | "CLOSE": "Fermer", 8 | "LOOP": "Boucle", 9 | "CURRENT_TASKS": "Tâches actuelles", 10 | "ADDING_TASK": "Ajout de tâche" 11 | } -------------------------------------------------------------------------------- /public/locales/fr/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Aide", 3 | "SETTINGS_BUTTON": "Paramètres", 4 | "MY_AGENTS": "Mes agents", 5 | "SIGN_IN_NOTICE": "Connectez-vous pour enregistrer vos agents et gérer votre compte!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Vous devez d'abord créer et enregistrer votre premier agent avant que quelque chose ne s'affiche ici!", 7 | "SIGN_IN": "Se connecter", 8 | "SIGN_OUT": "Se déconnecter", 9 | "ACCOUNT" : "Compte", 10 | "USER_IMAGE": "Image d'utilisateur" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/fr/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "ERREUR lors de l'accès à la clé d'API OpenAI. Veuillez vérifier la clé d'API ou réessayer ultérieurement.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "ERREUR lors de l'ajout de tâches supplémentaires. Il est possible que notre modèle ne puisse pas gérer la réponse et ait généré cette erreur. Continuer...", 4 | "RATE_LIMIT_EXCEEDED": "Vous avez atteint le nombre maximal de requêtes ! Veuillez ralentir...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Cet agent a atteint le nombre maximal de boucles exécutables. Pour sauver votre porte-monnaie, cet agent s'arrête maintenant... Le nombre maximal de boucles d'exécution de l'agent peut être configuré dans les paramètres.", 6 | "DEMO_LOOPS_REACHED": "Désolé, puisqu'il s'agit d'une application de démonstration, nous ne pouvons pas faire fonctionner les agents pendant une période prolongée. Note : si vous souhaitez des exécutions plus longues, veuillez fournir une clé API personnalisée dans les Paramètres. Arrêt...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "L'agent a été arrêté manuellement.", 8 | "ALL_TASKS_COMPLETETD": "Toutes les tâches ont été terminées. Arrêt...", 9 | "ERROR_API_KEY_QUOTA": "ERREUR lors de l'utilisation de la clé API OpenAI. Vous avez dépassé votre quota actuel, veuillez vérifier vos informations de facturation.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "ERREUR : Votre clé API OpenAI ne dispose pas d'un accès à GPT-4. Vous devez d'abord vous inscrire sur la liste d'attente OpenAI. (Ceci est différent de ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "ERREUR lors de la récupération des tâches initiales. Réessayez, reformulez l'objectif de l'agent de manière plus claire ou modifiez-le de manière à ce qu'il convienne à notre modèle. Arrêt...", 12 | "INVALID_OPENAI_API_KEY": "ERREUR clé API OpenAI invalide" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/fr/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Bienvenue sur AgentGPT", 3 | "INTRODUCING_AGENTGPT": "permet de configurer et d'exécuter des agents d'IA autonomes dans votre navigateur. Nommez votre agent d'IA personnalisé et définissez son objectif. L'agent d'IA tentera d'atteindre l'objectif défini en créant des tâches, en les exécutant, puis en évaluant les résultats 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Cette plateforme est actuellement en version bêta, nous travaillons actuellement sur les fonctionnalités suivantes:", 5 | "LONG_TERM_MEMORY": "Mémoire à long terme 🧠", 6 | "WEB_BROWSING": "Navigation Web 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interaction avec les sites Web et les personnes 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Suivez notre parcours ci-dessous :" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/fr/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Béta", 3 | "HEADING_DESCRIPTION": "Assembler, configurer et déployer des agents d'IA autonomes dans votre navigateur.", 4 | "AGENT_NAME": "Nom", 5 | "LABEL_AGENT_GOAL": "Objectif", 6 | "PLACEHOLDER_AGENT_GOAL": "Rendre le monde meilleur", 7 | "BUTTON_DEPLOY_AGENT": "Exécuter l'agent", 8 | "BUTTON_STOP_AGENT": "Arrêter l'agent" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/fr/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Anglais", 3 | "FRENCH": "Français", 4 | "SPANISH": "Espagnol", 5 | "GERMAN": "Allemand", 6 | "JAPANESE": "Japonais", 7 | "KOREAN": "Coréen", 8 | "CHINESE": "Chinois", 9 | "PORTUGEES": "Portugais", 10 | "ITALIAN": "Italien", 11 | "DUTCH": "Néerlandais", 12 | "POLSKI": "Polonais", 13 | "HUNGARIAN": "Hongrois", 14 | "ROMANIAN": "Roumain", 15 | "SLOVAK": "Slovaque" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/fr/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Température", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Des valeurs plus élevées rendent la sortie plus aléatoire, tandis que des valeurs plus basses la rendent plus ciblée et précise.", 4 | "LOOP": "Boucle", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Contrôle le nombre maximal de boucles exécutées par l'agent (une valeur plus élevée entraîne plus d'appels API).", 6 | "TOKENS": "Jetons", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Contrôle le nombre maximal de jetons utilisés dans chaque appel API (une valeur plus élevée produit des réponses plus détaillées mais plus coûteuses).", 8 | "SETTINGS_DIALOG_HEADER": "Paramètres ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Ici, vous pouvez ajouter votre clé API OpenAI. Cela signifie que vous devrez payer pour utiliser votre propre jeton OpenAI, mais vous aurez un accès accru à ChatGPT ! Vous pouvez également sélectionner n'importe quel modèle proposé par OpenAI.", 10 | "INFO_TO_USE_GPT4": "Pour utiliser le modèle GPT-4, vous devez également fournir une clé API. Vous pouvez l'obtenir", 11 | "HERE": "ici", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(L'abonnement ChatGPT Plus ne fonctionnera pas)", 13 | "API_KEY": "Clé API", 14 | "ADVANCED_SETTINGS": "Paramètres avancés", 15 | "NOTE_TO_GET_OPENAI_KEY": "REMARQUE : Pour obtenir une clé API, vous devez vous inscrire à un compte OpenAI en suivant le lien ci-dessous :", 16 | "LINK": "Demande de clé API", 17 | "NOTE_API_KEY_USAGE": "Cette clé est utilisée uniquement dans la session de travail actuelle du navigateur.", 18 | "LABEL_MODEL": "Modèle", 19 | "LANG": "Langue" 20 | } -------------------------------------------------------------------------------- /public/locales/hr/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Doživljavamo iznimno velik promet, očekujte kašnjenja i probleme ako ne koristite svoj vlastiti API ključ 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Kreirajte agenta dodavanjem imena/cilja i klikom na deploy!", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Možete koristiti svoj vlastiti OpenAI API ključ u kartici postavki za povećanje limita!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Pomozite u napretku AgentGPT-a. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Molimo razmotrite sponzoriranje projekta na GitHubu.", 7 | "SUPPORT_NOW": "Podržite odmah 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Kreće se u ostvarivanje novog cilja:", 9 | "THINKING": "Razmišljam...", 10 | "TASK_ADDED": "Dodana zadaća:", 11 | "COMPLETING": "Dovršavanje:", 12 | "NO_MORE_TASKS": "Nema više pod-zadataka za:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Tekst kopiran u međuspremnik", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Nije moguće kopirati tekst u međuspremnik", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Ponovo pokrenite ako ovo traje više od 30 sekundi)" 16 | } -------------------------------------------------------------------------------- /public/locales/hr/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Spremi", 3 | "IMAGE": "Slika", 4 | "COPY": "Kopiraj", 5 | "EXPORT": "Izvezi", 6 | "RESET": "Resetiraj", 7 | "CLOSE": "Zatvori", 8 | "LOOP": "Petlja", 9 | "CURRENT_TASKS": "Trenutni zadaci", 10 | "ADDING_TASK": "Dodavanje zadatka" 11 | } -------------------------------------------------------------------------------- /public/locales/hr/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Pomoć", 3 | "SETTINGS_BUTTON": "Postavke", 4 | "MY_AGENTS": "Moji agenti", 5 | "SIGN_IN_NOTICE": "Prijavite se da biste mogli spremiti svoje agente i upravljati svojim računom!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Prvo morate stvoriti i spremiti svoj prvi agent prije nego što se ovdje pojavi išta!", 7 | "SIGN_IN": "Prijava", 8 | "SIGN_OUT": "Odjava", 9 | "ACCOUNT" : "Račun", 10 | "USER_IMAGE": "Slika korisnika" 11 | } -------------------------------------------------------------------------------- /public/locales/hr/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "Pogreška prilikom pristupa OpenAI API ključu. Provjerite ključ ili pokušajte kasnije.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "Pogreška prilikom dodavanja dodatnih zadataka. Moguće je da naš model ne može obraditi odgovor i to je uzrokovalo ovu pogrešku. Nastavljam...", 4 | "RATE_LIMIT_EXCEEDED": "Dosegli ste maksimalni broj upita! Molimo usporite...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Ovaj agent je dosegnuo maksimalni broj mogućih izvršavanja. Kako biste sačuvali novac, ovaj će agent sada prestati raditi... Maksimalni broj izvršavanja agenta moguće je konfigurirati u postavkama.", 6 | "DEMO_LOOPS_REACHED": "Žao nam je, ali budući da je ovo demo aplikacija, ne možemo izvoditi rad agenata predugo. Napomena: Ako želite dulje izvršavanje, molimo unesite vlastiti API ključ u Postavkama. Prestajem raditi...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Agent je ručno zaustavljen.", 8 | "ALL_TASKS_COMPLETETD": "Svi zadaci su završeni. Zaustavljam...", 9 | "ERROR_API_KEY_QUOTA": "Pogreška pri korištenju OpenAI API ključa. Premašili ste trenutnu kvotu, molimo provjerite svoje fakturiranje.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "POGREŠKA: Vaš OpenAI API ključ nema pristup GPT-4. Prvo se morate prijaviti na OpenAI čekalici. (Ovo se razlikuje od ChatGPT Plus-a)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "Pogreška prilikom preuzimanja početnih zadataka. Pokušajte ponovno, jasnije definirajte cilj agenta ili ga prilagodite kako bi odgovarao našem modelu. Zaustavljam...", 12 | "INVALID_OPENAI_API_KEY": "POGREŠKA nevažeći OpenAI API ključ" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/hr/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Dobrodošli u AgentGPT", 3 | "INTRODUCING_AGENTGPT": "omogućuje vam konfiguriranje i pokretanje samostalnih AI agenata u vašem pregledniku. Nazovite svoj prilagođeni AI agent i odredite njegov cilj. AI agent će pokušati postići određeni cilj stvaranjem zadataka, izvršavanjem zadataka, a zatim procjenom rezultata 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Ova platforma trenutno je u beta verziji, trenutno radimo na sljedećem:", 5 | "LONG_TERM_MEMORY": "Dugoročna memorija 🧠", 6 | "WEB_BROWSING": "Web pregledavanje 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interakcija s web stranicama i ljudima 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Pratite naše putovanje u nastavku:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/hr/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Beta", 3 | "HEADING_DESCRIPTION": "Sastavite, konfigurirajte i instalirajte autonomne AI agente u svom pregledniku.", 4 | "AGENT_NAME": "Ime", 5 | "LABEL_AGENT_GOAL": "Cilj", 6 | "PLACEHOLDER_AGENT_GOAL": "Učinite svijet boljim mjestom", 7 | "BUTTON_DEPLOY_AGENT": "Pokreni agenta", 8 | "BUTTON_STOP_AGENT": "Zaustavi agenta" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/hr/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Engleski", 3 | "FRENCH": "Francuski", 4 | "SPANISH": "Španjolski", 5 | "GERMAN": "Njemački", 6 | "JAPANESE": "Japanski", 7 | "KOREAN": "Korejski", 8 | "CHINESE": "Kineski", 9 | "PORTUGEES": "Portugalski", 10 | "ITALIAN": "Talijanski", 11 | "DUTCH": "Nizozemski", 12 | "POLSKI": "Poljski", 13 | "HUNGARIAN": "Mađarski", 14 | "ROMANIAN": "Rumunjski", 15 | "SLOVAK": "Slovački" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/hr/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperatura", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Više vrijednosti čine izlaz više slučajnim, dok niže vrijednosti čine izlaz usredotočenijim i preciznijim.", 4 | "LOOP": "Petlja", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Kontrolira maksimalni broj petlji koje će agent pokrenuti (viša vrijednost rezultira više API poziva).", 6 | "TOKENS": "Tokeni", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Kontrolira maksimalni broj tokena korištenih u svakom pojedinom API pozivu (viša vrijednost rezultira detaljnijim odgovorima, ali je skuplje).", 8 | "SETTINGS_DIALOG_HEADER": "Postavke ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Ovdje možete dodati svoj OpenAI API ključ. To znači da ćete morati platiti za korištenje vlastitog OpenAI tokena, ali ćete dobiti veći pristup ChatGPT-u! Također možete odabrati bilo koji model koji nudi OpenAI.", 10 | "INFO_TO_USE_GPT4": "Za korištenje GPT-4 modela potreban je i API ključ. Možete ga nabaviti", 11 | "HERE": "ovdje", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(ChatGPT Plus pretplata neće raditi)", 13 | "API_KEY": "API ključ", 14 | "ADVANCED_SETTINGS": "Napredne postavke", 15 | "NOTE_TO_GET_OPENAI_KEY": "NAPOMENA: Da biste dobili API ključ, morate se registrirati za OpenAI račun na sljedećoj poveznici:", 16 | "LINK": "Zahtjev za API ključ", 17 | "NOTE_API_KEY_USAGE": "Ovaj ključ se koristi samo u trenutnoj sesiji preglednika.", 18 | "LABEL_MODEL": "Model", 19 | "LANG": "Jezik" 20 | } -------------------------------------------------------------------------------- /public/locales/hu/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Kivételesen nagy forgalmat tapasztalunk, várható késések és hibák, ha nem a saját API-kulcsát használja 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Hozzon létre egy ügynököt a név és a cél hozzáadásával, majd kattintson az \"Ügynök indítása!\" gombra", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Saját OpenAI API-kulcsot adhat meg a beállítások fülön az emelt korlátok érdekében!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Segítse az AgentGPT fejlesztését. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Támogasson a projektet a GitHub-on keresztül.", 7 | "SUPPORT_NOW": "Támogatás most 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Új cél elérése:", 9 | "THINKING": "Gondolkodás...", 10 | "TASK_ADDED": "Feladat hozzáadva:", 11 | "COMPLETING": "Befejezés:", 12 | "NO_MORE_TASKS": "Nincsenek további alfeladatok ehhez:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Szöveg másolva a vágólapra", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Nem sikerült a szöveg vágólapra másolása", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Frissítse az oldalt vagy indítsa újra az ügynököt manuálisan, ha ez több mint 30 másodpercig tart)" 16 | } -------------------------------------------------------------------------------- /public/locales/hu/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Mentés", 3 | "IMAGE": "Kép", 4 | "COPY": "Mésolás", 5 | "EXPORT": "Exportálás", 6 | "RESET": "Visszaállítás", 7 | "CLOSE": "Bezárás", 8 | "LOOP": "Kör", 9 | "CURRENT_TASKS": "Jelenlegi feladat", 10 | "ADDING_TASK": "Feladat hozzáadása" 11 | } -------------------------------------------------------------------------------- /public/locales/hu/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Segítség", 3 | "SETTINGS_BUTTON": "Beállítások", 4 | "SUPPORT_BUTTON": "Támogatás", 5 | "MY_AGENTS": "Az én ügynökeim", 6 | "SIGN_IN_NOTICE": "Jelentkezzen be, hogy menthesse az ügynökeit, és kezelhesse a fiókját!", 7 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Először létre kell hoznia és mentenie az első ügynökét, mielőtt itt valami megjelenne!", 8 | "SIGN_IN": "Bejelentkezés", 9 | "SIGN_OUT": "Kijelentkezés", 10 | "ACCOUNT" : "Fiók", 11 | "USER_IMAGE": "Felhasználói kép" 12 | } 13 | -------------------------------------------------------------------------------- /public/locales/hu/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "HIBA a OpenAI API-hoz való csatlakozás közben. Kérjük, ellenőrizze az API-kulcsot, vagy próbálja meg később.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "HIBA a további feladat(ok) hozzáadása közben. Lehet, hogy a modellünk nem tudja kezelni a választ és az eredményezte ezt. Folytatás...", 4 | "RATE_LIMIT_EXCEEDED": "Elérte a maximális lekérdezések számát! Kérjük, lassítson le...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Ez az ügynök elérte a maximális futtatható köreinek a számát. Hogy megmentse a pénztárcáját, ez az ügynök most leáll... Az ügynök futási köreinek a maximális számát az beállításokban lehet konfigurálni.", 6 | "DEMO_LOOPS_REACHED": "Sajnáljuk, de mivel ez egy bemutató alkalmazás így nem tudjuk túl hosszú ideig futtatni az ügynökeit. Megjegyzés: ha hosszabb futtatásokat szeretne, kérjük, adjon meg egy saját API-kulcsot a Beállításokban. Leállítás...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Az ügynök manuálisan leállítva.", 8 | "ALL_TASKS_COMPLETETD": "Minden feladat befejeződött. Leállítás...", 9 | "ERROR_API_KEY_QUOTA": "HIBA az OpenAI API-kulcs használatakor. Túllépte jelenlegi kvótáját, kérjük, ellenőrizze számlázási adatait.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "HIBA: Az Ön OpenAI API kulcsa nem rendelkezik GPT-4 hozzáféréssel. Először jelentkeznie kell az OpenAI várólistáján. (Ez eltér a ChatGPT Plus-tól)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "HIBA az alapfeladatok lekérdezése közben. Próbálja újra, fogalmazza meg az ügynök célját világosabban, vagy módosítsa a oly módon, hogy az megfeleljen a modellünk számára. Leállítás...", 12 | "INVALID_OPENAI_API_KEY": "HIBA érvénytelen OpenAI API-kulcs" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/hu/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Üdvözöljük az AgentGPT-nél", 3 | "INTRODUCING_AGENTGPT": "lehetővé teszi az Ön számára, hogy konfigurálja és futtassa az önálló MI ügynököket a böngészőjén keresztül. Nevezze el az egyéni MI ügynökét, és határozza meg a célját. Az MI ügynök Megkísérli elérni a meghatározott célt azzal, hogy feladatokra hoz létre, végrehajtja őket, majd kiértékeli azok eredményeit 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Ez a platform jelenleg béta verzióban van, jelenleg a következőkön dolgozunk:", 5 | "LONG_TERM_MEMORY": "Hosszú távú memória 🧠", 6 | "WEB_BROWSING": "Webes böngészés 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interakció a weboldalakkal és az emberekkel 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Kövessen minket az alábbi utakon:" 9 | } -------------------------------------------------------------------------------- /public/locales/hu/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Béta", 3 | "HEADING_DESCRIPTION": "Összeállít, konfigurál és telepít autonóm MI ügynököket a böngészőjében.", 4 | "AGENT_NAME": "Név", 5 | "LABEL_AGENT_GOAL": "Cél", 6 | "PLACEHOLDER_AGENT_GOAL": "Tedd egy jobb hellyé a világot", 7 | "BUTTON_DEPLOY_AGENT": "Ügynök futtatása", 8 | "BUTTON_STOP_AGENT": "Ügynök leállítása" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/hu/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Angol", 3 | "FRENCH": "Francia", 4 | "SPANISH": "Spanyol", 5 | "GERMAN": "Német", 6 | "JAPANESE": "Japán", 7 | "KOREAN": "Koreai", 8 | "CHINESE": "Kínai", 9 | "PORTUGEES": "Portugál", 10 | "ITALIAN": "Olasz", 11 | "DUTCH": "Holland", 12 | "POLSKI": "Lengyel", 13 | "HUNGARIAN": "Magyar", 14 | "ROMANIAN": "Román", 15 | "SLOVAK": "Szlovák" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/hu/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperametum", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Magasabb értékek több véletlenszerűséget adnak a kimenetnek, míg alacsonyabb értékek fókuszáltabbá és meghatározottabbá teszik azt.", 4 | "LOOP": "Ciklus", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Szabályozza az ügynök által futtatott ciklusok maximális számát (magasabb érték több API-hívást eredményez).", 6 | "TOKENS": "Tokenek", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Szabályozza a minden egyes API-hívásban használt tokenek maximális számát (magasabb érték részletesebb válaszokat eredményez, de többe kerül).", 8 | "SETTINGS_DIALOG_HEADER": "Beállítások ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Itt adhatja hozzá az OpenAI API-kulcsát. Ez azt jelenti, hogy saját OpenAI token felhasználásáért fizetnie kell, de nagyobb hozzáférést kap a ChatGPT-hez! Továbbá bármely OpenAI által kínált modellt is kiválaszthat.", 10 | "INFO_TO_USE_GPT4": "A GPT-4 modell használatához szükséges az API-kulcs megadása is. Beszerezheti", 11 | "HERE": "itt", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(A ChatGPT Plus előfizetés nem működik)", 13 | "API_KEY": "Kulcs", 14 | "ADVANCED_SETTINGS": "Haladó beállítások", 15 | "NOTE_TO_GET_OPENAI_KEY": "MEGJEGYZÉS: Az API-kulcs megszerzéséhez regisztrálnia kell egy OpenAI-fiókot, amit a következő hivatkozáson tehet meg:", 16 | "LINK": "API kulcs igénylése", 17 | "NOTE_API_KEY_USAGE": "Ez a kulcs csak az aktuális böngészői munkamenetben használatos.", 18 | "LABEL_MODEL": "Modell", 19 | "LANG": "Nyelv" 20 | } -------------------------------------------------------------------------------- /public/locales/it/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Stiamo riscontrando un traffico eccezionalmente elevato, si prevedono ritardi e errori se non si utilizza la propria chiave API 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Crea un agente aggiungendo nome e obiettivo, quindi premi il pulsante \"Avvia agente!\"", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 È possibile fornire la propria chiave API OpenAI nella scheda Impostazioni per ottenere limiti superiori!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Aiuta a sostenere lo sviluppo di AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Considera di sponsorizzare il progetto su GitHub.", 7 | "SUPPORT_NOW": "Supporto ora 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Affrontando un nuovo obiettivo:", 9 | "THINKING": "Pensando...", 10 | "TASK_ADDED": "Compito aggiunto:", 11 | "COMPLETING": "Completando:", 12 | "NO_MORE_TASKS": "Non ci sono più sottocompiti per questo:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Testo copiato negli appunti", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Impossibile copiare il testo negli appunti", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Ricaricare la pagina o avviare manualmente l'agente se ciò richiede più di 30 secondi)" 16 | } -------------------------------------------------------------------------------- /public/locales/it/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Salva", 3 | "IMAGE": "Immagine", 4 | "COPY": "Copia", 5 | "EXPORT": "Esporta", 6 | "RESET": "Resetta", 7 | "CLOSE": "Chiudi", 8 | "LOOP": "Ciclo", 9 | "CURRENT_TASKS": "Attività correnti", 10 | "ADDING_TASK": "Aggiunta attività" 11 | } -------------------------------------------------------------------------------- /public/locales/it/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Aiuto", 3 | "SETTINGS_BUTTON": "Impostazioni", 4 | "MY_AGENTS": "I miei agenti", 5 | "SIGN_IN_NOTICE": "Effettua l'accesso per salvare i tuoi agenti e gestire il tuo account!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Prima di visualizzare qualcosa qui, devi creare e salvare il tuo primo agente!", 7 | "SIGN_IN": "Accedi", 8 | "SIGN_OUT": "Esci", 9 | "ACCOUNT": "Account", 10 | "USER_IMAGE": "Immagine utente" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/it/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "ERRORE durante l'accesso alla chiave API di OpenAI. Controllare la chiave API o riprovare più tardi.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "ERRORE durante l'aggiunta di ulteriori compiti. Potrebbe essere che il nostro modello non riesca a gestire la risposta e ciò abbia generato l'errore. Continua...", 4 | "RATE_LIMIT_EXCEEDED": "Limite massimo di query raggiunto! Si prega di rallentare...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Questo agente ha raggiunto il numero massimo di cicli eseguibili. Per salvare il portafoglio, questo agente si fermerà ora... Il numero massimo di cicli di esecuzione dell'agente può essere configurato nelle impostazioni.", 6 | "DEMO_LOOPS_REACHED": "Spiacente, poiché questa è un'applicazione demo, non possiamo far funzionare gli agenti per troppo tempo. Nota: se desideri eseguire cicli più lunghi, fornisci una chiave API personalizzata nelle Impostazioni. Si ferma...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Agente arrestato manualmente.", 8 | "ALL_TASKS_COMPLETETD": "Tutti i compiti sono stati completati. Arresto...", 9 | "ERROR_API_KEY_QUOTA": "ERRORE nell'uso della chiave API di OpenAI. Hai superato la tua quota corrente, controlla le tue informazioni di fatturazione.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "ERRORE: la tua chiave API di OpenAI non ha accesso a GPT-4. Prima devi registrarti nella lista d'attesa di OpenAI. (Ciò differisce da ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "ERRORE durante il recupero dei compiti iniziali. Riprova, formulando più chiaramente l'obiettivo dell'agente o modificandolo in modo che sia conforme al nostro modello. Arresto...", 12 | "INVALID_OPENAI_API_KEY": "ERRORE chiave API OpenAI non valida" 13 | } -------------------------------------------------------------------------------- /public/locales/it/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Benvenuti in AgentGPT", 3 | "INTRODUCING_AGENTGPT": "consente di configurare e eseguire agenti di intelligenza artificiale autonomi nel proprio browser. Assegna un nome al tuo agente di intelligenza artificiale personalizzato e definisci il suo obiettivo. L'agente di intelligenza artificiale cercherà di raggiungere l'obiettivo specificato creando compiti, eseguendoli e valutando i risultati 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Questa piattaforma è attualmente in versione beta, al momento stiamo lavorando su:", 5 | "LONG_TERM_MEMORY": "Memoria a lungo termine 🧠", 6 | "WEB_BROWSING": "Navigazione Web 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interazione con siti web e persone 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Seguici sui seguenti canali:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/it/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Beta", 3 | "HEADING_DESCRIPTION": "Compila, configura e installa agenti AI autonomi nel tuo browser.", 4 | "AGENT_NAME": "Nome", 5 | "LABEL_AGENT_GOAL": "Obiettivo", 6 | "PLACEHOLDER_AGENT_GOAL": "Rendi il mondo un posto migliore", 7 | "BUTTON_DEPLOY_AGENT": "Esegui agente", 8 | "BUTTON_STOP_AGENT": "Arresta agente" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/it/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Inglese", 3 | "FRENCH": "Francese", 4 | "SPANISH": "Spagnolo", 5 | "GERMAN": "Tedesco", 6 | "JAPANESE": "Giapponese", 7 | "KOREAN": "Coreano", 8 | "CHINESE": "Cinese", 9 | "PORTUGEES": "Portoghese", 10 | "ITALIAN": "Italiano", 11 | "DUTCH": "Olandese", 12 | "POLSKI": "Polacco", 13 | "HUNGARIAN": "Ungherese", 14 | "ROMANIAN": "Rumeno", 15 | "SLOVAK": "Slovacco" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/it/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperatura", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Valori più alti rendono l'output più casuale, mentre valori più bassi lo rendono più focalizzato e determinato.", 4 | "LOOP": "Loop", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Controlla il numero massimo di loop eseguiti dall'agente (un valore più alto comporta più chiamate API).", 6 | "TOKENS": "Token", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Controlla il numero massimo di token utilizzati in ogni chiamata API (un valore più alto fornisce risposte più dettagliate ma ha un costo maggiore).", 8 | "SETTINGS_DIALOG_HEADER": "Impostazioni ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Qui puoi aggiungere la tua chiave API OpenAI. Ciò significa che dovrai pagare l'utilizzo dei tuoi token OpenAI, ma avrai un maggiore accesso a ChatGPT! Inoltre, puoi selezionare qualsiasi modello offerto da OpenAI.", 10 | "INFO_TO_USE_GPT4": "Per utilizzare il modello GPT-4 è necessario fornire la chiave API. Puoi ottenerla", 11 | "HERE": "qui", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(La sottoscrizione ChatGPT Plus non funzionerà)", 13 | "API_KEY": "Chiave API", 14 | "ADVANCED_SETTINGS": "Impostazioni avanzate", 15 | "NOTE_TO_GET_OPENAI_KEY": "NOTA: Per ottenere la chiave API è necessario registrarsi per un account OpenAI, che può essere fatto al seguente link:", 16 | "LINK": "Richiesta chiave API", 17 | "NOTE_API_KEY_USAGE": "Questa chiave verrà utilizzata solo durante la sessione del browser corrente.", 18 | "LABEL_MODEL": "Modello", 19 | "LANG": "Lingua" 20 | } -------------------------------------------------------------------------------- /public/locales/ja/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 We are experiencing exceptional traffic, expect delays and failures if you do not use your own API key🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Create an agent by adding a name / goal, and hitting deploy!", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 You can provide your own OpenAI API key in the settings tab for increased limits!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Help support the advancement of AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Please consider sponsoring the project on GitHub.", 7 | "SUPPORT_NOW": "Support now 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Embarking on a new goal:", 9 | "THINKING": "Thinking...", 10 | "TASK_ADDED": "Added task:", 11 | "COMPLETING": "Completing:", 12 | "NO_MORE_TASKS": "No more subtasks for:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Text copied to clipboard", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Unable to copy text to clipboard", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Restart if this takes more than 30 seconds)" 16 | } -------------------------------------------------------------------------------- /public/locales/ja/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "保存", 3 | "IMAGE": "画像", 4 | "COPY": "コピー", 5 | "EXPORT": "エクスポート", 6 | "RESET": "リセット", 7 | "CLOSE": "閉じる", 8 | "LOOP": "ループ", 9 | "CURRENT_TASKS": "現在のタスク", 10 | "ADDING_TASK": "タスクの追加" 11 | } -------------------------------------------------------------------------------- /public/locales/ja/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "ヘルプ", 3 | "SETTINGS_BUTTON": "設定", 4 | "MY_AGENTS": "私のエージェント", 5 | "SIGN_IN_NOTICE": "アカウントを保存し、エージェントを管理するにはログインしてください!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "ここに何か表示される前に、最初にエージェントを作成して保存する必要があります!", 7 | "SIGN_IN": "ログイン", 8 | "SIGN_OUT": "ログアウト", 9 | "ACCOUNT" : "アカウント", 10 | "USER_IMAGE": "ユーザー画像" 11 | } -------------------------------------------------------------------------------- /public/locales/ja/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "OpenAI APIキーにアクセスできませんでした。APIキーを確認するか、後でもう一度お試しください。", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "追加タスクの追加中にエラーが発生しました。モデルが回答を扱えない可能性があるため、処理を続行します...", 4 | "RATE_LIMIT_EXCEEDED": "最大クエリ数に達しました! 一時的にお待ちください...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "このエージェントは、最大実行可能なループ数に達しました。財布を救うために、このエージェントは今停止します... エージェントの最大実行可能なループ数は設定で構成できます。", 6 | "DEMO_LOOPS_REACHED": "申し訳ありませんが、これはデモアプリケーションなので、エージェントを長時間実行することはできません。注:より長い実行を希望する場合は、設定でAPIキーを入力してください。停止...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "エージェントが手動でシャットダウンされました。", 8 | "ALL_TASKS_COMPLETETD": "すべてのタスクが完了しました。停止...", 9 | "ERROR_API_KEY_QUOTA": "OpenAI APIキーを使用する際のエラー。現在のクォータを超えています。請求情報を確認してください。", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "エラー:お持ちのOpenAI APIキーにはGPT-4アクセス権がありません。まずOpenAIの待ち行列に登録する必要があります。(ChatGPT Plusとは異なります)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "初期タスクの取得中にエラーが発生しました。再試行するか、エージェントの目的を明確にしたり、モデルに適合するように変更してください。停止...", 12 | "INVALID_OPENAI_API_KEY": "エラー 無効なOpenAI APIキー" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/ja/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "AgentGPTへようこそ", 3 | "INTRODUCING_AGENTGPT": "は、ブラウザーで独自のAIエージェントを構成して実行することができます。独自のAIエージェントに名前を付け、目標を定義します。AIエージェントは、タスクを作成し、実行し、結果を評価することで、指定された目標を達成しようとします 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "このプラットフォームは現在ベータ版です。現在、以下に取り組んでいます:", 5 | "LONG_TERM_MEMORY": "長期的な記憶 🧠", 6 | "WEB_BROWSING": "Webブラウジング 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "ウェブサイトや人々との相互作用 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "以下のチャンネルで私たちに参加してください:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ja/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "ベータ版", 3 | "HEADING_DESCRIPTION": "ブラウザーで自律型AIエージェントを構成、設定、およびインストールします。", 4 | "AGENT_NAME": "名前", 5 | "LABEL_AGENT_GOAL": "目標", 6 | "PLACEHOLDER_AGENT_GOAL": "世界をより良い場所にする", 7 | "BUTTON_DEPLOY_AGENT": "エージェントを実行", 8 | "BUTTON_STOP_AGENT": "エージェントを停止" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ja/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "英語", 3 | "FRENCH": "フランス語", 4 | "SPANISH": "スペイン語", 5 | "GERMAN": "ドイツ語", 6 | "JAPANESE": "日本語", 7 | "KOREAN": "韓国語", 8 | "CHINESE": "中国語", 9 | "PORTUGEES": "ポルトガル語", 10 | "ITALIAN": "イタリア語", 11 | "DUTCH": "オランダ語", 12 | "POLSKI": "ポーランド語", 13 | "HUNGARIAN": "ハンガリー語", 14 | "ROMANIAN": "ルーマニア語", 15 | "SLOVAK": "スロバキア語" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/ja/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "温度", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "より高い値は出力をよりランダムにしますが、より低い値はより焦点を絞り、定義されたものにします。", 4 | "LOOP": "ループ", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "エージェントが実行するループの最大数を制御します(高い値はより多くのAPI呼び出しを生成します)。", 6 | "TOKENS": "トークン", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "各API呼び出しで使用されるトークンの最大数を制御します(より高い値は詳細な応答を生成しますが、コストがかかります)。", 8 | "SETTINGS_DIALOG_HEADER": "設定 ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "ここでOpenAI APIキーを追加できます。これにより、独自のOpenAIトークンを使用するために支払いをする必要がありますが、ChatGPTにより大きなアクセス権が与えられます!また、OpenAIが提供する任意のモデルを選択できます。", 10 | "INFO_TO_USE_GPT4": "GPT-4モデルを使用するには、APIキーの指定が必要です。取得できます", 11 | "HERE": "こちら", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(ChatGPT Plusのサブスクリプションは機能しません)", 13 | "API_KEY": "APIキー", 14 | "ADVANCED_SETTINGS": "高度な設定", 15 | "NOTE_TO_GET_OPENAI_KEY": "注意:APIキーを取得するには、次のリンクでOpenAIアカウントに登録する必要があります。", 16 | "LINK": "APIキーの申請", 17 | "NOTE_API_KEY_USAGE": "このキーは現在のブラウザセッションでのみ使用されます。", 18 | "LABEL_MODEL": "モデル", 19 | "LANG": "言語" 20 | } -------------------------------------------------------------------------------- /public/locales/ko/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 우리는 예외적인 교통량을 경험하고 있습니다. API 키를 사용하지 않으면 지연과 오류가 예상됩니다 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> 이름과 목표를 추가하여 에이전트를 생성한 다음, \"에이전트 시작!\" 버튼을 클릭하세요.", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 고객님만의 OpenAI API 키를 설정 탭에서 제공하면 제한을 늘릴 수 있습니다!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ AgentGPT의 발전을 지원하세요. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "GitHub에서 이 프로젝트를 후원해주세요.", 7 | "SUPPORT_NOW": "지금 지원하기 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "새로운 목표 시작:", 9 | "THINKING": "생각중...", 10 | "TASK_ADDED": "작업 추가됨:", 11 | "COMPLETING": "완료중:", 12 | "NO_MORE_TASKS": "더 이상 이 작업에 대한 하위 작업이 없습니다:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "텍스트가 클립보드에 복사됨", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "텍스트를 클립보드에 복사할 수 없습니다", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(30초 이상 걸리면 페이지를 새로 고치거나 에이전트를 수동으로 재시작하세요)" 16 | } -------------------------------------------------------------------------------- /public/locales/ko/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "저장", 3 | "IMAGE": "이미지", 4 | "COPY": "복사", 5 | "EXPORT": "내보내기", 6 | "RESET": "재설정", 7 | "CLOSE": "닫기", 8 | "LOOP": "반복", 9 | "CURRENT_TASKS": "현재 작업", 10 | "ADDING_TASK": "작업 추가" 11 | } -------------------------------------------------------------------------------- /public/locales/ko/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "도움말", 3 | "SETTINGS_BUTTON": "설정", 4 | "MY_AGENTS": "나의 대리인", 5 | "SIGN_IN_NOTICE": "계정을 관리하고 대리인을 저장하려면 로그인하세요!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "여기에 무언가 표시되기 전에 먼저 대리인을 생성하고 저장해야합니다!", 7 | "SIGN_IN": "로그인", 8 | "SIGN_OUT": "로그아웃", 9 | "ACCOUNT" : "계정", 10 | "USER_IMAGE": "사용자 이미지" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/ko/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "오류: OpenAI API에 접속하는 중에 문제가 발생했습니다. API 키를 확인하거나 나중에 다시 시도해주세요.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "오류: 추가 작업을 추가하는 중에 문제가 발생했습니다. 모델이 답변을 처리할 수 없어서 발생한 것일 수 있습니다. 계속 진행합니다...", 4 | "RATE_LIMIT_EXCEEDED": "최대 쿼리 수를 초과했습니다! 속도를 늦춰주세요...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "이 에이전트는 최대 실행 가능한 루프 수에 도달했습니다. 지갑을 보호하기 위해 이제 이 에이전트를 중단합니다... 에이전트 실행 횟수의 최대값은 설정에서 구성할 수 있습니다.", 6 | "DEMO_LOOPS_REACHED": "죄송합니다. 이것은 데모 애플리케이션이기 때문에 에이전트를 너무 오래 실행할 수 없습니다. 참고: 더 오래 실행하려면 설정에서 자체 API 키를 제공해주세요. 중단합니다...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "에이전트가 수동으로 중단되었습니다.", 8 | "ALL_TASKS_COMPLETETD": "모든 작업이 완료되었습니다. 중단합니다...", 9 | "ERROR_API_KEY_QUOTA": "OpenAI API 키를 사용하는 중에 오류가 발생했습니다. 현재 할당량을 초과하였습니다. 결제 정보를 확인해주세요.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "오류: OpenAI API 키에 GPT-4 액세스 권한이 없습니다. 먼저 OpenAI 대기열에 등록해야합니다. (이는 ChatGPT Plus와 다릅니다)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "오류: 초기 작업을 검색하는 중에 문제가 발생했습니다. 에이전트 목적을 명확하게 제시하거나 모델에 맞도록 수정하십시오. 중단합니다...", 12 | "INVALID_OPENAI_API_KEY": "에러 유효하지 않은 OpenAI API 키" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/ko/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "AgentGPT에 오신 것을 환영합니다", 3 | "INTRODUCING_AGENTGPT": "AgentGPT는 브라우저를 통해 독립적인 AI 에이전트를 구성하고 실행할 수 있도록합니다. 사용자 정의 AI 에이전트의 이름을 지정하고 목표를 정의하십시오. AI 에이전트는 작업을 생성하고 실행하여 지정된 목표를 달성하려고합니다. 그런 다음 결과를 평가합니다 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "이 플랫폼은 현재 베타 버전입니다. 현재 다음에 집중하고 있습니다:", 5 | "LONG_TERM_MEMORY": "장기 기억 🧠", 6 | "WEB_BROWSING": "웹 탐색 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "웹 사이트 및 사람들과의 상호 작용 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "아래의 방법으로 우리를 따라가십시오:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ko/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "베타", 3 | "HEADING_DESCRIPTION": "브라우저에서 자율적 인 AI 에이전트를 구성, 구성 및 설치합니다.", 4 | "AGENT_NAME": "이름", 5 | "LABEL_AGENT_GOAL": "목표", 6 | "PLACEHOLDER_AGENT_GOAL": "세상을 더 나은 곳으로 만들기", 7 | "BUTTON_DEPLOY_AGENT": "에이전트 실행", 8 | "BUTTON_STOP_AGENT": "에이전트 중지" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ko/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "영어", 3 | "FRENCH": "프랑스어", 4 | "SPANISH": "스페인어", 5 | "GERMAN": "독일어", 6 | "JAPANESE": "일본어", 7 | "KOREAN": "한국어", 8 | "CHINESE": "중국어", 9 | "PORTUGEES": "포르투갈어", 10 | "ITALIAN": "이탈리아어", 11 | "DUTCH": "네덜란드어", 12 | "POLSKI": "폴란드어", 13 | "HUNGARIAN": "헝가리어", 14 | "ROMANIAN": "루마니아어", 15 | "SLOVAK": "슬로바키아어" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/ko/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "온도", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "높은 값은 출력을 더 무작위하게 만듭니다. 반면, 낮은 값은 출력을 집중하고 명확하게 만듭니다.", 4 | "LOOP": "루프", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "에이전트가 실행하는 루프의 최대 수를 제어합니다 (높은 값은 더 많은 API 호출을 의미합니다).", 6 | "TOKENS": "토큰", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "각 API 호출에서 사용되는 토큰의 최대 수를 제어합니다 (높은 값은 자세한 응답을 제공하지만 더 비용이 듭니다).", 8 | "SETTINGS_DIALOG_HEADER": "설정 ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "여기에서 OpenAI API 키를 추가할 수 있습니다. 이것은 사용자의 OpenAI 토큰을 사용하고 이를 위해 비용을 지불해야 하지만 ChatGPT에 대한 더 큰 액세스 권한을 얻을 수 있습니다. 또한 OpenAI에서 제공하는 어떤 모델도 선택할 수 있습니다.", 10 | "INFO_TO_USE_GPT4": "GPT-4 모델을 사용하려면 API 키를 입력해야 합니다. 여기서", 11 | "HERE": "여기", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(ChatGPT Plus 구독은 작동하지 않습니다)", 13 | "API_KEY": "API 키", 14 | "ADVANCED_SETTINGS": "고급 설정", 15 | "NOTE_TO_GET_OPENAI_KEY": "참고: API 키를 얻으려면 OpenAI 계정을 등록해야 합니다. 다음 링크에서 등록할 수 있습니다:", 16 | "LINK": "API 키 요청", 17 | "NOTE_API_KEY_USAGE": "이 키는 현재 브라우저 세션에서만 사용됩니다.", 18 | "LABEL_MODEL": "모델", 19 | "LANG": "언어" 20 | } -------------------------------------------------------------------------------- /public/locales/lt/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Mesame neįprastai didelį eismą, tikimasi delsų ir klaidų, jei nenaudojate savo API rakto 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Sukurkite agentą pridėdami pavadinimą ir tikslą, tada paspauskite mygtuką \"Paleisti agentą!\"", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Galite pateikti savo OpenAI API raktą skirtai padidinti limitus nustatymuose!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Padėkite plėtoti AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Remkite projektą per GitHub.", 7 | "SUPPORT_NOW": "Palaikyti dabar 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Įgyvendinama nauja tikslas:", 9 | "THINKING": "Mąstymas...", 10 | "TASK_ADDED": "Užduotis pridėta:", 11 | "COMPLETING": "Baigiama:", 12 | "NO_MORE_TASKS": "Nėra daugiau sub-ūduočių:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Tekstas nukopijuotas į iškarpinę", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Nepavyko nukopijuoti teksto į iškarpinę", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Atnaujinkite puslapį arba paleiskite agentą iš naujo rankiniu būdu, jei tai užtrunka daugiau nei 30 sekundžių)" 16 | } -------------------------------------------------------------------------------- /public/locales/lt/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Išsaugoti", 3 | "IMAGE": "Vaizdas", 4 | "COPY": "Kopijuoti", 5 | "EXPORT": "Eksportuoti", 6 | "RESET": "Atstatyti", 7 | "CLOSE": "Uždaryti", 8 | "LOOP": "Ciklas", 9 | "CURRENT_TASKS": "Esami užduotys", 10 | "ADDING_TASK": "Užduoties pridėjimas" 11 | } -------------------------------------------------------------------------------- /public/locales/lt/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Pagalba", 3 | "SETTINGS_BUTTON": "Nustatymai", 4 | "MY_AGENTS": "Mano agentai", 5 | "SIGN_IN_NOTICE": "Prisijunkite, kad galėtumėte įrašyti savo agentus ir tvarkyti savo paskyrą!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Pirma turite sukurti ir įrašyti savo pirmąjį agentą, prieš atsiras ką nors čia!", 7 | "SIGN_IN": "Prisijungti", 8 | "SIGN_OUT": "Atsijungti", 9 | "ACCOUNT" : "Paskyra", 10 | "USER_IMAGE": "Naudotojo paveikslėlis" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/lt/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "KLAIDA jungiantis prie OpenAI API. Patikrinkite API raktą arba bandykite vėliau.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "KLAIDA pridedant papildomus uždavinius. Mūsų modelis galbūt negali apdoroti atsakymo ir dėl to kilo problema. Tęsiame...", 4 | "RATE_LIMIT_EXCEEDED": "Pasiektas maksimalus užklausų skaičius! Prašome sulėtinti...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Šis agentas pasiekė maksimalų leistinų ciklų skaičių. Kad išvengtumėte pinigų išlaidų, šis agentas dabar bus sustabdytas... Maksimalų leistinų agento ciklų skaičių galima konfigūruoti nustatymuose.", 6 | "DEMO_LOOPS_REACHED": "Atsiprašome, tačiau, kadangi tai demonstracinė programa, negalime leisti agentams būti vykdomi ilgiau nei tam tikrą laiką. Pastaba: jei norite vykdyti ilgesnes programas, įveskite savo API raktą Nustatymuose. Sustabdymas...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Agentas sustabdytas rankiniu būdu.", 8 | "ALL_TASKS_COMPLETETD": "Visi uždaviniai baigti. Sustabdymas...", 9 | "ERROR_API_KEY_QUOTA": "KLAIDA naudojant OpenAI API raktą. Viršijote savo dabartinę kvotą. Patikrinkite savo sąskaitos informaciją.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "KLAIDA: Jūsų OpenAI API raktas neturi prieigos prie GPT-4. Pirmiausia turite užsiregistruoti OpenAI eilėje. (Tai skiriasi nuo ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "KLAIDA gaunant pradinius uždavinius. Bandykite dar kartą, aiškiau suformuluokite agento tikslą arba pakeiskite jį taip, kad jis atitiktų mūsų modelio reikalavimus. Sustabdymas...", 12 | "INVALID_OPENAI_API_KEY": "KLAIDA neteisingas OpenAI API raktas" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/lt/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Sveiki atvykę į AgentGPT", 3 | "INTRODUCING_AGENTGPT": "AgentGPT leidžia jums konfigūruoti ir paleisti savarankiškus MI agentus per naršyklę. Pavadinkite savo asmeninį MI agentą ir nustatykite tikslą. MI agentas stengsis pasiekti nustatytą tikslą, kurdamas ir vykdamas užduotis, o tada vertindamas jų rezultatus 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Ši platforma dabar yra beta versijoje, mes dabar dirbame su:", 5 | "LONG_TERM_MEMORY": "Ilguoju laikotarpiu atmintis 🧠", 6 | "WEB_BROWSING": "Interneto naršymas 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Sąveika su svetainėmis ir žmonėmis 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Sekite mus šiais keliais:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/lt/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Beta", 3 | "HEADING_DESCRIPTION": "Compila, configura e installa agenti AI autonomi nel tuo browser.", 4 | "AGENT_NAME": "Nome", 5 | "LABEL_AGENT_GOAL": "Obiettivo", 6 | "PLACEHOLDER_AGENT_GOAL": "Rendere il mondo un posto migliore", 7 | "BUTTON_DEPLOY_AGENT": "Esegui agente", 8 | "BUTTON_STOP_AGENT": "Ferma agente" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/lt/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Anglų", 3 | "FRENCH": "Prancūzų", 4 | "SPANISH": "Ispanų", 5 | "GERMAN": "Vokiečių", 6 | "JAPANESE": "Japonų", 7 | "KOREAN": "Korėjiečių", 8 | "CHINESE": "Kinų", 9 | "PORTUGEES": "Portugalų", 10 | "ITALIAN": "Italų", 11 | "DUTCH": "Olandų", 12 | "POLSKI": "Lenkų", 13 | "HUNGARIAN": "Vengrų", 14 | "ROMANIAN": "Rumunų", 15 | "SLOVAK": "Slovakų" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/lt/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperatūra", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Didesnės reikšmės padidina atsakymų atsitiktinumą, o mažesnės reikšmės padeda sukoncentruoti atsakymą ir jį nukreipti.", 4 | "LOOP": "Ciklas", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Valdo maksimalų leidžiamų ciklų skaičių (didelis skaičius reiškia daugiau API užklausų).", 6 | "TOKENS": "Žetoniai", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Valdo maksimalų žetonų skaičių, naudojamų kiekviename API užklausime (didelis skaičius reiškia išsamesnius atsakymus, bet didesnes išlaidas).", 8 | "SETTINGS_DIALOG_HEADER": "Nustatymai ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Čia galite pridėti savo OpenAI API raktą. Tai reiškia, kad turėsite sumokėti už savo OpenAI žetonus, tačiau gausite didesnę prieigą prie ChatGPT! Be to, galite pasirinkti bet kurią OpenAI modelį.", 10 | "INFO_TO_USE_GPT4": "Norint naudoti GPT-4 modelį, taip pat reikalingas API raktas. Jį galite gauti", 11 | "HERE": "čia", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(ChatGPT Plus prenumerata neveiks)", 13 | "API_KEY": "API raktas", 14 | "ADVANCED_SETTINGS": "Išplėstiniai nustatymai", 15 | "NOTE_TO_GET_OPENAI_KEY": "PRIMINIMAS: Norint gauti API raktą, turite užsiregistruoti OpenAI paskyroje, kurią galite sukurti šiuo nuorodos adresu:", 16 | "LINK": "API rakto užsakymas", 17 | "NOTE_API_KEY_USAGE": "Šis raktas naudojamas tik dabartinėje naršymo sesijoje.", 18 | "LABEL_MODEL": "Modelis", 19 | "LANG": "Kalba" 20 | } -------------------------------------------------------------------------------- /public/locales/nl/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 We ervaren uitzonderlijk verkeer, verwachte vertragingen en fouten als u niet uw eigen API-sleutel gebruikt 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Maak een agent aan door de naam en het doel toe te voegen en klik op de knop \"Agent starten!\"", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 U kunt uw eigen OpenAI API-sleutel opgeven op het tabblad Instellingen voor verhoogde limieten!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Ondersteun de ontwikkeling van AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Overweeg om het project te sponsoren via GitHub.", 7 | "SUPPORT_NOW": "Ondersteun nu 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Starten van een nieuw doel:", 9 | "THINKING": "Denken...", 10 | "TASK_ADDED": "Taak toegevoegd:", 11 | "COMPLETING": "Voltooien:", 12 | "NO_MORE_TASKS": "Er zijn geen verdere subtaken voor dit item:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Tekst gekopieerd naar klembord", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Tekst kon niet worden gekopieerd naar het klembord", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Vernieuw de pagina of start de agent handmatig opnieuw op als dit langer dan 30 seconden duurt)" 16 | } -------------------------------------------------------------------------------- /public/locales/nl/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Opslaan", 3 | "IMAGE": "Afbeelding", 4 | "COPY": "Kopiëren", 5 | "EXPORT": "Exporteren", 6 | "RESET": "Resetten", 7 | "CLOSE": "Sluiten", 8 | "LOOP": "Lus", 9 | "CURRENT_TASKS": "Huidige taken", 10 | "ADDING_TASK": "Taak toevoegen" 11 | } -------------------------------------------------------------------------------- /public/locales/nl/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Help", 3 | "SETTINGS_BUTTON": "Instellingen", 4 | "MY_AGENTS": "Mijn agenten", 5 | "SIGN_IN_NOTICE": "Meld u aan om uw agenten op te slaan en uw account te beheren!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "U moet eerst uw eerste agent maken en opslaan voordat er hier iets verschijnt!", 7 | "SIGN_IN": "Inloggen", 8 | "SIGN_OUT": "Uitloggen", 9 | "ACCOUNT" : "Account", 10 | "USER_IMAGE": "Gebruikersafbeelding" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/nl/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "FOUT bij het openen van de OpenAI API-sleutel. Controleer de API-sleutel of probeer het later opnieuw.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "FOUT bij het toevoegen van extra taken. Het kan zijn dat ons model het antwoord niet aankan en dit heeft veroorzaakt. Ga verder...", 4 | "RATE_LIMIT_EXCEEDED": "U heeft het maximale aantal verzoeken bereikt! Vertraag alsjeblieft...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Deze agent heeft het maximum aantal uitvoerbare rondes bereikt. Om uw portemonnee te sparen, stopt deze agent nu... Het maximum aantal uitvoerbare rondes van de agent kan worden geconfigureerd in de instellingen.", 6 | "DEMO_LOOPS_REACHED": "Sorry, maar omdat dit een demo-applicatie is, kunnen we onze agenten niet te lang laten draaien. Opmerking: als u langere runs wilt, geef dan uw eigen API-sleutel op in de instellingen. Stoppen...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "De agent is handmatig gestopt.", 8 | "ALL_TASKS_COMPLETETD": "Alle taken zijn voltooid. Stoppen...", 9 | "ERROR_API_KEY_QUOTA": "FOUT bij het gebruik van de OpenAI API-sleutel. U heeft uw huidige quota overschreden, controleer uw factureringsgegevens.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "FOUT: uw OpenAI API-sleutel heeft geen toegang tot GPT-4. U moet zich eerst aanmelden voor de OpenAI-wachtlijst. (Dit is anders dan ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "FOUT bij het ophalen van de initiële taken. Probeer het opnieuw, formuleer de doelstellingen van de agent duidelijker of pas deze aan zodat deze geschikt is voor ons model. Stoppen...", 12 | "INVALID_OPENAI_API_KEY": "FOUT ongeldige OpenAI API-sleutel" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/nl/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Welkom bij AgentGPT", 3 | "INTRODUCING_AGENTGPT": "Stelt u in staat om uw eigen zelfstandige AI-agenten te configureren en uit te voeren via uw browser. Noem uw aangepaste AI-agent en bepaal het doel. De AI-agent probeert het gespecificeerde doel te bereiken door taken te creëren, uit te voeren en de resultaten ervan te evalueren 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Dit platform is momenteel in bètafase, we werken momenteel aan de volgende functies:", 5 | "LONG_TERM_MEMORY": "Lange termijngeheugen 🧠", 6 | "WEB_BROWSING": "Webbrowsen 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interactie met websites en mensen 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Volg ons op onze reis:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/nl/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Bèta", 3 | "HEADING_DESCRIPTION": "Compileer, configureer en installeer autonome AI-agenten in uw browser.", 4 | "AGENT_NAME": "Naam", 5 | "LABEL_AGENT_GOAL": "Doel", 6 | "PLACEHOLDER_AGENT_GOAL": "Maak de wereld een betere plek", 7 | "BUTTON_DEPLOY_AGENT": "Agent implementeren", 8 | "BUTTON_STOP_AGENT": "Agent stoppen" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/nl/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Engels", 3 | "FRENCH": "Frans", 4 | "SPANISH": "Spaans", 5 | "GERMAN": "Duits", 6 | "JAPANESE": "Japans", 7 | "KOREAN": "Koreaans", 8 | "CHINESE": "Chinees", 9 | "PORTUGEES": "Portugees", 10 | "ITALIAN": "Italiaans", 11 | "DUTCH": "Nederlands", 12 | "POLSKI": "Pools", 13 | "HUNGARIAN": "Hongaars", 14 | "ROMANIAN": "Roemeens", 15 | "SLOVAK": "Slowaaks" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/nl/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperatuur", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Hogere waarden maken de output meer willekeurig, terwijl lagere waarden het gerichter en bepaalder maken.", 4 | "LOOP": "Lus", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Regelt het maximale aantal lussen dat de agent kan uitvoeren (een hogere waarde resulteert in meer API-oproepen).", 6 | "TOKENS": "Tokens", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Regelt het maximale aantal tokens dat in elke API-oproep wordt gebruikt (een hogere waarde resulteert in gedetailleerdere antwoorden, maar is duurder).", 8 | "SETTINGS_DIALOG_HEADER": "Instellingen ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Hier kunt u uw OpenAI API-sleutel toevoegen. Dit betekent dat u moet betalen voor uw eigen OpenAI-tokengebruik, maar u krijgt meer toegang tot ChatGPT! Bovendien kunt u elk model kiezen dat door OpenAI wordt aangeboden.", 10 | "INFO_TO_USE_GPT4": "Om het GPT-4-model te gebruiken, moet u ook de API-sleutel opgeven. Je kunt het", 11 | "HERE": "hier", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(Het ChatGPT Plus-abonnement werkt niet)", 13 | "API_KEY": "API-sleutel", 14 | "ADVANCED_SETTINGS": "Geavanceerde instellingen", 15 | "NOTE_TO_GET_OPENAI_KEY": "OPMERKING: Om een ​​API-sleutel te krijgen, moet u een OpenAI-account registreren op de volgende link:", 16 | "LINK": "API-sleutel aanvragen", 17 | "NOTE_API_KEY_USAGE": "Deze sleutel wordt alleen gebruikt tijdens de huidige browsersessie.", 18 | "LABEL_MODEL": "Model", 19 | "LANG": "Taal" 20 | } -------------------------------------------------------------------------------- /public/locales/pl/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Doświadczamy wyjątkowo dużego ruchu, oczekiwane są opóźnienia i błędy, jeśli nie używasz własnego klucza API 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Utwórz agenta, dodając nazwę i cel, a następnie kliknij przycisk \"Uruchom agenta!\"", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Możesz podać swój własny klucz API OpenAI w zakładce Ustawienia, aby uzyskać podwyższone limity!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Wsparcie dla rozwoju AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Rozważ wsparcie projektu na GitHub.", 7 | "SUPPORT_NOW": "Wsparcie teraz 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Nowe cel:", 9 | "THINKING": "Myślenie...", 10 | "TASK_ADDED": "Zadanie dodane:", 11 | "COMPLETING": "Wykonywanie:", 12 | "NO_MORE_TASKS": "Brak kolejnych zadań dla tego:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Tekst skopiowany do schowka", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Nie można skopiować tekstu do schowka", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Odśwież stronę lub uruchom agenta ponownie ręcznie, jeśli zajmie to ponad 30 sekund)" 16 | } -------------------------------------------------------------------------------- /public/locales/pl/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Salvar", 3 | "IMAGE": "Imagem", 4 | "COPY": "Copiar", 5 | "EXPORT": "Exportar", 6 | "RESET": "Redefinir", 7 | "CLOSE": "Fechar", 8 | "LOOP": "Loop", 9 | "CURRENT_TASKS": "Tarefas atuais", 10 | "ADDING_TASK": "Adicionando tarefa" 11 | } -------------------------------------------------------------------------------- /public/locales/pl/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Pomoc", 3 | "SETTINGS_BUTTON": "Ustawienia", 4 | "MY_AGENTS": "Moje agenci", 5 | "SIGN_IN_NOTICE": "Zaloguj się, aby zapisać swoich agentów i zarządzać swoim kontem!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Musisz najpierw stworzyć i zapisać swojego pierwszego agenta, zanim pojawi się tutaj coś!", 7 | "SIGN_IN": "Zaloguj się", 8 | "SIGN_OUT": "Wyloguj się", 9 | "ACCOUNT" : "Konto", 10 | "USER_IMAGE": "Zdjęcie użytkownika" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/pl/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "BŁĄD podczas łączenia się z kluczem API OpenAI. Proszę sprawdzić klucz API lub spróbować później.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "BŁĄD podczas dodawania dodatkowych zadań. Nasz model może nie obsługiwać odpowiedzi i spowodować to błąd. Kontynuacja...", 4 | "RATE_LIMIT_EXCEEDED": "Przekroczyłeś maksymalną liczbę zapytań! Proszę zwolnić... 😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Ten agent osiągnął maksymalną liczbę możliwych iteracji. Aby zachować swoją kieszeń, ten agent jest teraz wyłączony... Maksymalną liczbę iteracji agenta można skonfigurować w ustawieniach.", 6 | "DEMO_LOOPS_REACHED": "Przepraszamy, ale ponieważ jest to aplikacja demonstracyjna, nie możemy uruchamiać agentów przez zbyt długi czas. Uwaga: jeśli chcesz uruchamiać dłuższe sesje, proszę podać własny klucz API w ustawieniach. Wyłączenie...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Agent został ręcznie wyłączony.", 8 | "ALL_TASKS_COMPLETETD": "Wszystkie zadania zostały zakończone. Wyłączanie...", 9 | "ERROR_API_KEY_QUOTA": "BŁĄD podczas korzystania z klucza OpenAI API. Przekroczono bieżący limit, proszę sprawdzić informacje o rozliczeniach.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "BŁĄD: Twój klucz OpenAI API nie ma dostępu do GPT-4. Musisz najpierw zapisać się na listę oczekujących OpenAI. (To różni się od ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "BŁĄD podczas pobierania podstawowych zadań. Spróbuj ponownie, sformułuj cel agenta bardziej jasno lub zmodyfikuj go w taki sposób, aby pasował do naszego modelu. Wyłączanie...", 12 | "INVALID_OPENAI_API_KEY": "BŁĄD nieprawidłowy klucz API OpenAI" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/pl/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Witaj w AgentGPT", 3 | "INTRODUCING_AGENTGPT": "Umożliwia konfigurację i uruchamianie samodzielnych agentów AI za pomocą przeglądarki. Nazwij swojego spersonalizowanego agenta AI i określ jego cel. Agent AI będzie próbował osiągnąć określony cel, tworząc zadania, wykonując je, a następnie oceniając ich wyniki 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Ta platforma jest obecnie w wersji beta, obecnie pracujemy nad następującymi funkcjami:", 5 | "LONG_TERM_MEMORY": "Długotrwała pamięć 🧠", 6 | "WEB_BROWSING": "Przeglądanie internetu 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interakcja z witrynami i ludźmi 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Podążaj za nami na naszej drodze:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/pl/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Beta", 3 | "HEADING_DESCRIPTION": "Twórz, konfiguruj i instaluj autonomiczne agenty AI w Twojej przeglądarce.", 4 | "AGENT_NAME": "Nazwa", 5 | "LABEL_AGENT_GOAL": "Cel", 6 | "PLACEHOLDER_AGENT_GOAL": "Uczynić świat lepszym miejscem", 7 | "BUTTON_DEPLOY_AGENT": "Uruchom agenta", 8 | "BUTTON_STOP_AGENT": "Zatrzymaj agenta" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/pl/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Angielski", 3 | "FRENCH": "Francuski", 4 | "SPANISH": "Hiszpański", 5 | "GERMAN": "Niemiecki", 6 | "JAPANESE": "Japoński", 7 | "KOREAN": "Koreański", 8 | "CHINESE": "Chiński", 9 | "PORTUGEES": "Portugalski", 10 | "ITALIAN": "Włoski", 11 | "DUTCH": "Holenderski", 12 | "POLSKI": "Polski", 13 | "HUNGARIAN": "Węgierski", 14 | "ROMANIAN": "Rumuński", 15 | "SLOVAK": "Słowacki" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/pl/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperatura", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Wyższe wartości powodują, że wynik jest bardziej losowy, podczas gdy niższe wartości skupiają go i definiują bardziej.", 4 | "LOOP": "Pętla", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Kontroluje maksymalną liczbę pętli uruchamianych przez agenta (wyższa wartość oznacza więcej wywołań API).", 6 | "TOKENS": "Tokeny", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Kontroluje maksymalną liczbę tokenów używanych w każdym wywołaniu API (wyższa wartość daje bardziej szczegółowe odpowiedzi, ale jest droższa).", 8 | "SETTINGS_DIALOG_HEADER": "Ustawienia ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Tutaj możesz dodać swój klucz OpenAI API. Oznacza to, że musisz płacić za używanie własnego tokenu OpenAI, ale otrzymujesz większy dostęp do ChatGPT! Ponadto możesz wybrać dowolny model oferowany przez OpenAI.", 10 | "INFO_TO_USE_GPT4": "Aby użyć modelu GPT-4, musisz podać klucz API. Możesz go uzyskać", 11 | "HERE": "tutaj", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(Subskrypcja ChatGPT Plus nie będzie działać)", 13 | "API_KEY": "Klucz API", 14 | "ADVANCED_SETTINGS": "Zaawansowane ustawienia", 15 | "NOTE_TO_GET_OPENAI_KEY": "UWAGA: Aby uzyskać klucz API, musisz zarejestrować konto OpenAI, co możesz zrobić pod tym linkiem:", 16 | "LINK": "Zażądaj klucza API", 17 | "NOTE_API_KEY_USAGE": "Ten klucz jest używany tylko w bieżącej sesji przeglądarki.", 18 | "LABEL_MODEL": "Model", 19 | "LANG": "Język" 20 | } -------------------------------------------------------------------------------- /public/locales/pt/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Estamos experimentando tráfego excepcionalmente alto, podem ocorrer atrasos e erros se você não estiver usando sua própria chave de API 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Crie um agente adicionando nome e objetivo, e clique no botão \"Iniciar agente!\"", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Você pode fornecer sua própria chave de API OpenAI nas configurações para limites mais altos!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Ajude no avanço do AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Considere apoiar o projeto no GitHub.", 7 | "SUPPORT_NOW": "Apoiar agora 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Embarcando em um novo objetivo:", 9 | "THINKING": "Pensando...", 10 | "TASK_ADDED": "Tarefa adicionada:", 11 | "COMPLETING": "Completando:", 12 | "NO_MORE_TASKS": "Não há mais tarefas secundárias para isso:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Texto copiado para a área de transferência", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Não foi possível copiar o texto para a área de transferência", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Atualize a página ou reinicie o agente manualmente se isso levar mais de 30 segundos)" 16 | } -------------------------------------------------------------------------------- /public/locales/pt/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Save", 3 | "IMAGE": "Image", 4 | "COPY": "Copy", 5 | "EXPORT": "Export", 6 | "RESET": "Reset", 7 | "CLOSE": "Close", 8 | "LOOP": "Loop", 9 | "CURRENT_TASKS": "Current Tasks", 10 | "ADDING_TASK": "Adding Task" 11 | } -------------------------------------------------------------------------------- /public/locales/pt/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Ajuda", 3 | "SETTINGS_BUTTON": "Configurações", 4 | "MY_AGENTS": "Meus agentes", 5 | "SIGN_IN_NOTICE": "Faça login para salvar seus agentes e gerenciar sua conta!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Você precisa criar e salvar seu primeiro agente antes de qualquer coisa aparecer aqui!", 7 | "SIGN_IN": "Entrar", 8 | "SIGN_OUT": "Sair", 9 | "ACCOUNT" : "Conta", 10 | "USER_IMAGE": "Imagem do usuário" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/pt/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "Erro ao acessar a chave da API OpenAI durante a conexão. Por favor, verifique a chave da API ou tente novamente mais tarde.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "Erro ao adicionar tarefa(s) adicional(is). Talvez nosso modelo não seja capaz de lidar com a resposta e isso resultou nisso. Continuando...", 4 | "RATE_LIMIT_EXCEEDED": "Você atingiu o limite máximo de consultas! Por favor, diminua a velocidade...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Este agente atingiu o número máximo de ciclos executáveis. Para salvar sua carteira, este agente agora está sendo desligado... O número máximo de ciclos de execução do agente pode ser configurado nas configurações.", 6 | "DEMO_LOOPS_REACHED": "Desculpe, mas como esta é uma aplicação de demonstração, não podemos executar os agentes por muito tempo. Observação: se você quiser execuções mais longas, forneça sua própria chave API nas Configurações. Parando...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Agente desligado manualmente.", 8 | "ALL_TASKS_COMPLETETD": "Todas as tarefas foram concluídas. Desligando...", 9 | "ERROR_API_KEY_QUOTA": "Erro ao usar a chave da API OpenAI. Você excedeu sua cota atual, por favor verifique suas informações de faturamento.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "ERRO: Sua chave OpenAI API não tem acesso ao GPT-4. Você precisa se inscrever na lista de espera da OpenAI primeiro. (Isso é diferente do ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "Erro ao recuperar tarefas iniciais. Tente novamente, formule o objetivo do agente de forma mais clara ou modifique-o para que atenda ao nosso modelo. Desligando...", 12 | "INVALID_OPENAI_API_KEY": "ERRO chave de API OpenAI inválida" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/pt/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Bem-vindo à AgentGPT", 3 | "INTRODUCING_AGENTGPT": "permite que configure e execute agentes de IA autônomos em seu navegador. Dê um nome ao seu agente de IA personalizado e defina seu objetivo. O agente de IA tentará atingir o objetivo especificado, criando tarefas, executando-as e avaliando seus resultados 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Esta plataforma está atualmente em versão beta e estamos trabalhando em:", 5 | "LONG_TERM_MEMORY": "Memória de longo prazo 🧠", 6 | "WEB_BROWSING": "Navegação na web 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interagir com sites e pessoas 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Siga-nos nas seguintes jornadas:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/pt/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Beta", 3 | "HEADING_DESCRIPTION": "Crie, configure e instale agentes autônomos de IA em seu navegador.", 4 | "AGENT_NAME": "Nome", 5 | "LABEL_AGENT_GOAL": "Objetivo", 6 | "PLACEHOLDER_AGENT_GOAL": "Tornar o mundo um lugar melhor", 7 | "BUTTON_DEPLOY_AGENT": "Executar agente", 8 | "BUTTON_STOP_AGENT": "Parar agente" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/pt/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Inglês", 3 | "FRENCH": "Francês", 4 | "SPANISH": "Espanhol", 5 | "GERMAN": "Alemão", 6 | "JAPANESE": "Japonês", 7 | "KOREAN": "Coreano", 8 | "CHINESE": "Chinês", 9 | "PORTUGEES": "Português", 10 | "ITALIAN": "Italiano", 11 | "DUTCH": "Holandês", 12 | "POLSKI": "Polonês", 13 | "HUNGARIAN": "Húngaro", 14 | "ROMANIAN": "Romeno", 15 | "SLOVAK": "Eslovaco" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/pt/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperatura", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Valores mais altos tornam a saída mais aleatória, enquanto valores mais baixos a tornam mais focada e definida.", 4 | "LOOP": "Laço", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Controla o número máximo de loops executados pelo agente (valores mais altos resultam em mais chamadas de API).", 6 | "TOKENS": "Tokens", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Controla o número máximo de tokens usados em cada chamada de API (valores mais altos resultam em respostas mais detalhadas, mas também mais caras).", 8 | "SETTINGS_DIALOG_HEADER": "Configurações ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Aqui você pode adicionar sua chave de API da OpenAI. Isso significa que você terá que pagar pelo uso de seu próprio token da OpenAI, mas terá acesso mais amplo ao ChatGPT! Além disso, você pode escolher qualquer modelo oferecido pela OpenAI.", 10 | "INFO_TO_USE_GPT4": "Para usar o modelo GPT-4, é necessário fornecer a chave de API. Você pode obtê-la", 11 | "HERE": "aqui", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(A assinatura do ChatGPT Plus não funcionará)", 13 | "API_KEY": "Chave de API", 14 | "ADVANCED_SETTINGS": "Configurações avançadas", 15 | "NOTE_TO_GET_OPENAI_KEY": "OBSERVAÇÃO: Para obter uma chave de API, você precisa se registrar em uma conta da OpenAI, o que pode ser feito no seguinte link:", 16 | "LINK": "Solicitar chave de API", 17 | "NOTE_API_KEY_USAGE": "Esta chave só será usada nesta sessão do navegador.", 18 | "LABEL_MODEL": "Modelo", 19 | "LANG": "Idioma" 20 | } -------------------------------------------------------------------------------- /public/locales/ro/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Experimentăm un trafic excepțional de mare, se așteaptă întârzieri și erori dacă nu utilizați propriul cheie API 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Creați un agent prin adăugarea numelui și obiectivului, apoi faceți clic pe butonul \"Pornire agent!\"", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Puteți furniza propriul cheie API OpenAI în fila Setări pentru limite mai mari!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Ajutați la dezvoltarea AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Luați în considerare sponsorizarea proiectului pe GitHub.", 7 | "SUPPORT_NOW": "Susținere acum 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Începerea unui nou obiectiv:", 9 | "THINKING": "Gândire...", 10 | "TASK_ADDED": "Sarcină adăugată:", 11 | "COMPLETING": "Finalizare:", 12 | "NO_MORE_TASKS": "Nu mai sunt alte sub-sarcini pentru aceasta:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Text copiat în clipboard", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Nu se poate copia textul în clipboard", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Reîncărcați pagina sau porniți manual agentul dacă durează mai mult de 30 de secunde)" 16 | } -------------------------------------------------------------------------------- /public/locales/ro/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Salvare", 3 | "IMAGE": "Imagine", 4 | "COPY": "Copiere", 5 | "EXPORT": "Export", 6 | "RESET": "Resetare", 7 | "CLOSE": "Închidere", 8 | "LOOP": "Bucle", 9 | "CURRENT_TASKS": "Sarcinile curente", 10 | "ADDING_TASK": "Adăugarea sarcinii" 11 | } -------------------------------------------------------------------------------- /public/locales/ro/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Ajutor", 3 | "SETTINGS_BUTTON": "Setări", 4 | "MY_AGENTS": "Agenta mea", 5 | "SIGN_IN_NOTICE": "Conectați-vă pentru a salva agenții dvs. și a gestiona contul!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Trebuie să creați și să salvați primul agent înainte ca ceva să apară aici!", 7 | "SIGN_IN": "Conectare", 8 | "SIGN_OUT": "Deconectare", 9 | "ACCOUNT" : "Cont", 10 | "USER_IMAGE": "Imagine utilizator" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/ro/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "EROARE la conectarea cu cheia API OpenAI. Vă rugăm să verificați cheia API sau încercați mai târziu.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "EROARE la adăugarea task-urilor suplimentare. Este posibil ca modelul nostru să nu poată gestiona răspunsul și să genereze această eroare. Continuare...", 4 | "RATE_LIMIT_EXCEEDED": "Ați atins limita maximă de interogări! Vă rugăm să încetiniți... 😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Acest agent a atins numărul maxim de iterații posibile. Pentru a vă economisi banii, acest agent va fi oprit acum... Numărul maxim de iterații ale agentului poate fi configurat în setări.", 6 | "DEMO_LOOPS_REACHED": "Ne pare rău, dar deoarece aceasta este o aplicație demonstrativă, nu putem rula agenții prea mult timp. Notă: dacă doriți să rulați mai mult timp, vă rugăm să furnizați o cheie API proprie în Setări. Oprim...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Agentul a fost oprit manual.", 8 | "ALL_TASKS_COMPLETETD": "Toate task-urile au fost finalizate. Oprim...", 9 | "ERROR_API_KEY_QUOTA": "EROARE la utilizarea cheii API OpenAI. Ați depășit cota curentă, vă rugăm să verificați informațiile de facturare.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "EROARE: Cheia API OpenAI nu are acces la GPT-4. Trebuie să vă înscrieți mai întâi în lista de așteptare OpenAI. (Acest lucru diferă de ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "EROARE la recuperarea task-urilor inițiale. Încercați din nou, formulați obiectivul agentului mai clar sau modificați-l astfel încât să se potrivească modelului nostru. Oprim...", 12 | "INVALID_OPENAI_API_KEY": "EROARE cheie API OpenAI nevalidă" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/ro/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Bine ați venit la AgentGPT", 3 | "INTRODUCING_AGENTGPT": "vă permite să configurați și să rulați agenți de IA autonomi în browser-ul dvs. Dați un nume agenților de IA personalizați și definiți obiectivul lor. Agenții de IA vor încerca să atingă obiectivul specificat, creând sarcini, executându-le și evaluând rezultatele lor 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Această platformă este în prezent în versiune beta și lucrăm la:", 5 | "LONG_TERM_MEMORY": "Memorie pe termen lung 🧠", 6 | "WEB_BROWSING": "Navigare web 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interacțiune cu site-uri și persoane 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Urmăriți călătoria noastră:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ro/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Beta", 3 | "HEADING_DESCRIPTION": "Compilează, configurează și instalează agenți autonomi de IA în browser-ul tău.", 4 | "AGENT_NAME": "Nume", 5 | "LABEL_AGENT_GOAL": "Scop", 6 | "PLACEHOLDER_AGENT_GOAL": "Să facă lumea un loc mai bun", 7 | "BUTTON_DEPLOY_AGENT": "Execută agentul", 8 | "BUTTON_STOP_AGENT": "Oprește agentul" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ro/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Engleză", 3 | "FRENCH": "Franceză", 4 | "SPANISH": "Spaniolă", 5 | "GERMAN": "Germană", 6 | "JAPANESE": "Japoneză", 7 | "KOREAN": "Coreeană", 8 | "CHINESE": "Chineză", 9 | "PORTUGEES": "Portugheză", 10 | "ITALIAN": "Italiană", 11 | "DUTCH": "Olandeză", 12 | "POLSKI": "Poloneză", 13 | "HUNGARIAN": "Maghiară", 14 | "ROMANIAN": "Română", 15 | "SLOVAK": "Slovacă" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/ro/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Temperatură", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Valori mai mari fac ieșirea mai aleatorie, în timp ce valori mai mici o fac mai focalizată și mai precisă.", 4 | "LOOP": "Bucle", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Controlează numărul maxim de bucle executate de agent (o valoare mai mare va duce la mai multe apeluri API).", 6 | "TOKENS": "Token-uri", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Controlează numărul maxim de token-uri folosite în fiecare apel API (o valoare mai mare va duce la răspunsuri mai detaliate, dar mai costisitoare).", 8 | "SETTINGS_DIALOG_HEADER": "Setări ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Aici puteți adăuga cheia dvs. API OpenAI. Aceasta înseamnă că va trebui să plătiți pentru utilizarea propriului dvs. token OpenAI, dar veți avea un acces mai mare la ChatGPT! De asemenea, puteți selecta orice model oferit de OpenAI.", 10 | "INFO_TO_USE_GPT4": "Pentru a utiliza modelul GPT-4, trebuie să furnizați cheia API. O puteți obține", 11 | "HERE": "aici", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(Abonamentul ChatGPT Plus nu va funcționa)", 13 | "API_KEY": "Cheie API", 14 | "ADVANCED_SETTINGS": "Setări avansate", 15 | "NOTE_TO_GET_OPENAI_KEY": "NOTĂ: Pentru a obține o cheie API, trebuie să vă înregistrați pentru un cont OpenAI la următorul link:", 16 | "LINK": "Solicitare cheie API", 17 | "NOTE_API_KEY_USAGE": "Această cheie este valabilă doar pentru sesiunea curentă a browser-ului.", 18 | "LABEL_MODEL": "Model", 19 | "LANG": "Limbă" 20 | } -------------------------------------------------------------------------------- /public/locales/ru/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Мы наблюдаем исключительно высокий трафик, ожидайте задержек и ошибок, если не используете свой собственный API-ключ 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Создайте агента, добавив имя и цель, затем нажмите кнопку \"Запустить агента!\"", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Вы можете предоставить свой ключ OpenAI API в разделе настроек для повышения лимитов!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Поддержите развитие AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Поддержите проект на GitHub.", 7 | "SUPPORT_NOW": "Поддержать сейчас 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Новая цель:", 9 | "THINKING": "Думаю...", 10 | "TASK_ADDED": "Задача добавлена:", 11 | "COMPLETING": "Завершение:", 12 | "NO_MORE_TASKS": "Нет больше подзадач для этого:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Текст скопирован в буфер обмена", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Не удалось скопировать текст в буфер обмена", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Обновите страницу или запустите агента заново вручную, если это займет более 30 секунд)" 16 | } -------------------------------------------------------------------------------- /public/locales/ru/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Сохранить", 3 | "IMAGE": "Изображение", 4 | "COPY": "Копировать", 5 | "EXPORT": "Экспортировать", 6 | "RESET": "Сбросить", 7 | "CLOSE": "Закрыть", 8 | "LOOP": "Петля", 9 | "CURRENT_TASKS": "Текущие задачи", 10 | "ADDING_TASK": "Добавление задачи" 11 | } -------------------------------------------------------------------------------- /public/locales/ru/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Помощь", 3 | "SETTINGS_BUTTON": "Настройки", 4 | "MY_AGENTS": "Мои агенты", 5 | "SIGN_IN_NOTICE": "Войдите, чтобы сохранить своих агентов и управлять своей учетной записью!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Сначала вам нужно создать и сохранить своего первого агента, прежде чем что-либо появится здесь!", 7 | "SIGN_IN": "Войти", 8 | "SIGN_OUT": "Выйти", 9 | "ACCOUNT" : "Учетная запись", 10 | "USER_IMAGE": "Изображение пользователя" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/ru/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "Ошибка при доступе к ключу OpenAI API. Проверьте ключ API или попробуйте позже.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "Ошибка при добавлении дополнительных задач. Возможно, наша модель не может обработать ответ, что привело к этому. Продолжаем...", 4 | "RATE_LIMIT_EXCEEDED": "Превышен лимит запросов! Пожалуйста, замедлите...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Этот агент достиг максимального количества запускаемых циклов. Чтобы сохранить ваш кошелек, этот агент сейчас остановится... Максимальное количество запускаемых циклов агента можно настроить в настройках.", 6 | "DEMO_LOOPS_REACHED": "К сожалению, поскольку это демонстрационное приложение, мы не можем запускать наших агентов слишком долго. Примечание: если вам нужно длительное выполнение, пожалуйста, укажите свой собственный ключ API в настройках. Остановка...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Агент был остановлен вручную.", 8 | "ALL_TASKS_COMPLETETD": "Все задачи выполнены. Остановка...", 9 | "ERROR_API_KEY_QUOTA": "Ошибка при использовании ключа OpenAI API. Вы превысили свою текущую квоту, пожалуйста, проверьте свои платежные данные.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "Ошибка: ваш ключ OpenAI API не имеет доступа к GPT-4. Сначала вам нужно зарегистрироваться в списке ожидания OpenAI. (Это отличается от ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "Ошибка при запросе исходных задач. Попробуйте еще раз, яснее сформулируйте цель агента или измените ее таким образом, чтобы она соответствовала нашей модели. Остановка...", 12 | "INVALID_OPENAI_API_KEY": "ОШИБКА неверный ключ API OpenAI" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/ru/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Добро пожаловать в AgentGPT", 3 | "INTRODUCING_AGENTGPT": "позволяет вам настроить и запустить независимых агентов ИИ в вашем браузере. Назовите вашего собственного агента ИИ и определите его цель. Агент ИИ попытается достичь заданной цели, создавая задачи, выполняя их, а затем оценивая результаты 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Эта платформа находится в бета-версии, мы в настоящее время работаем над следующим:", 5 | "LONG_TERM_MEMORY": "Долгосрочная память 🧠", 6 | "WEB_BROWSING": "Веб-браузинг 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Взаимодействие с веб-сайтами и людьми 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Следите за нашими достижениями:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ru/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Бета", 3 | "HEADING_DESCRIPTION": "Соберите, настройте и установите автономных агентов искусственного интеллекта в своем браузере.", 4 | "AGENT_NAME": "Имя", 5 | "LABEL_AGENT_GOAL": "Цель", 6 | "PLACEHOLDER_AGENT_GOAL": "Сделать мир лучше", 7 | "BUTTON_DEPLOY_AGENT": "Запустить агента", 8 | "BUTTON_STOP_AGENT": "Остановить агента" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ru/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Английский", 3 | "FRENCH": "Французский", 4 | "SPANISH": "Испанский", 5 | "GERMAN": "Немецкий", 6 | "JAPANESE": "Японский", 7 | "KOREAN": "Корейский", 8 | "CHINESE": "Китайский", 9 | "PORTUGEES": "Португальский", 10 | "ITALIAN": "Итальянский", 11 | "DUTCH": "Голландский", 12 | "POLSKI": "Польский", 13 | "HUNGARIAN": "Венгерский", 14 | "ROMANIAN": "Румынский", 15 | "SLOVAK": "Словацкий" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/ru/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Температура", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Большие значения делают вывод более случайным, в то время как более низкие значения делают его более фокусированным и определенным.", 4 | "LOOP": "Цикл", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Управляет максимальным числом циклов, запущенных агентом (большее значение приводит к большему числу вызовов API).", 6 | "TOKENS": "Токены", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Ограничивает максимальное количество токенов, используемых в каждом вызове API (более высокое значение дает более подробные ответы, но стоит дороже).", 8 | "SETTINGS_DIALOG_HEADER": "Настройки ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Здесь вы можете добавить свой ключ OpenAI API. Это означает, что вам нужно заплатить за использование своего токена OpenAI, но вы получите больший доступ к ChatGPT! Кроме того, вы можете выбрать любую модель, предлагаемую OpenAI.", 10 | "INFO_TO_USE_GPT4": "Для использования модели GPT-4 необходимо также указать API-ключ. Вы можете получить его", 11 | "HERE": "здесь", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(Подписка ChatGPT Plus не будет работать)", 13 | "API_KEY": "API-ключ", 14 | "ADVANCED_SETTINGS": "Расширенные настройки", 15 | "NOTE_TO_GET_OPENAI_KEY": "ПРИМЕЧАНИЕ: Для получения API-ключа вам необходимо зарегистрироваться в учетной записи OpenAI по следующей ссылке:", 16 | "LINK": "запросить API-ключ", 17 | "NOTE_API_KEY_USAGE": "Этот ключ используется только в текущей сессии браузера.", 18 | "LABEL_MODEL": "Модель", 19 | "LANG": "Язык" 20 | } 21 | -------------------------------------------------------------------------------- /public/locales/sk/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Momentálne sa stretávame s mimoriadne vysokou premávkou. Očakávajte meškania a chyby, ak aký nepoužívate svoj API kľúč 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Vytvorte agenta pridaním mena a cieľa a kliknite na tlačidlo \"Spustiť agenta!\"", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Môžete uviesť svoj OpenAI API kľúč v sekcii Nastavenia, aby ste zvýšili obmedzenia!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Podporte rozvoj AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Zvážte podporu projektu na Github-e.", 7 | "SUPPORT_NOW": "Podporiť teraz 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Začíname nový cieľ:", 9 | "THINKING": "Premýšľanie...", 10 | "TASK_ADDED": "Úloha pridaná:", 11 | "COMPLETING": "Dokončovanie:", 12 | "NO_MORE_TASKS": "Žiadne ďalšie úlohy nie sú k dispozícii pre:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Text skopírovaný do schránky", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Nepodarilo sa skopírovať text do schránky", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Ak to trvá viac ako 30 sekúnd, obnovte stránku alebo spustite agenta znova manuálne)" 16 | } -------------------------------------------------------------------------------- /public/locales/sk/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Uložiť", 3 | "IMAGE": "Obrázok", 4 | "COPY": "Kopírovať", 5 | "EXPORT": "Exportovať", 6 | "RESET": "Obnoviť", 7 | "CLOSE": "Zavrieť", 8 | "LOOP": "Smyčka", 9 | "CURRENT_TASKS": "Aktuálne úlohy", 10 | "ADDING_TASK": "Pridanie úlohy" 11 | } -------------------------------------------------------------------------------- /public/locales/sk/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Pomoc", 3 | "SETTINGS_BUTTON": "Nastavenia", 4 | "MY_AGENTS": "Moji agenti", 5 | "SIGN_IN_NOTICE": "Prihláste sa, aby ste mohli uložiť svojich agentov a spravovať svoj účet!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Najprv musíte vytvoriť a uložiť svojho prvého agenta, než sa tu niečo zobrazí!", 7 | "SIGN_IN": "Prihlásiť sa", 8 | "SIGN_OUT": "Odhlásiť sa", 9 | "ACCOUNT" : "Účet", 10 | "USER_IMAGE": "Obrázok používateľa" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/sk/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "Chyba pri prístupe k OpenAI API kľúču. Skontrolujte prosím svoj API kľúč alebo to skúste neskôr.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "Chyba pri pridávaní ďalších úloh. Možno naša model nevie spracovať váš výber a toto je výsledkom. Pokračovanie...", 4 | "RATE_LIMIT_EXCEEDED": "Dosiahli ste maximálny počet dotazov! Prosím, spomaľte...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Tento agent dosiahol maximálny počet opakovaní. Pretože chceme ušetriť vašu peňaženku, tento agent sa teraz zastaví... Maximálny počet behov agenta je možné konfigurovať v nastaveniach.", 6 | "DEMO_LOOPS_REACHED": "Prepáčte, ale táto je ukážková aplikácia, takže nemôžeme nechať našich agentov behať príliš dlho. Poznámka: Ak chcete behy predĺžiť, zadajte vlastný API kľúč v nastaveniach. Zastavenie...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Agent bol ručne vypnutý.", 8 | "ALL_TASKS_COMPLETETD": "Všetky úlohy sú dokončené. Zastavenie...", 9 | "ERROR_API_KEY_QUOTA": "Chyba pri používaní OpenAI API kľúča. Prekročili ste svoju súčasnú kvótu, skontrolujte svoje fakturačné údaje.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "Chyba: Váš OpenAI API kľúč nemá prístup k GPT-4. Najskôr sa musíte zaregistrovať v OpenAI čakacej zoznamu. (To sa líši od ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "Chyba pri získavaní základných úloh. Skúste to znova, zmeňte cieľ agenta tak, aby bol jasný alebo ho upravte tak, aby zodpovedal nášmu modelu. Zastavenie...", 12 | "INVALID_OPENAI_API_KEY": "Chyba neplatný OpenAI API-kľúč" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/sk/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Vitajte v AgentGPT", 3 | "INTRODUCING_AGENTGPT": "vám umožňuje konfigurovať a spúšťať nezávislých agentov umelej inteligencie vo vašom prehliadači. Nazvite svojho vlastného agenta AI a stanovte jeho cieľ. Agent AI sa bude snažiť dosiahnuť stanovený cieľ tým, že vytvára úlohy, vykonáva ich a potom hodnotí ich výsledky 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Táto platforma je momentálne v beta verzii, momentálne pracujeme na týchto veciach:", 5 | "LONG_TERM_MEMORY": "Dlhodobá pamäť 🧠", 6 | "WEB_BROWSING": "Prehliadanie webových stránok 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Interakcia s webovými stránkami a ľuďmi 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Sledujte nás na našej ceste:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/sk/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Béta", 3 | "HEADING_DESCRIPTION": "Skladajte, konfigurujte a inštalujte autonómne agentov AI vo svojom prehliadači.", 4 | "AGENT_NAME": "Meno", 5 | "LABEL_AGENT_GOAL": "Cieľ", 6 | "PLACEHOLDER_AGENT_GOAL": "Urobiť svet lepším miestom", 7 | "BUTTON_DEPLOY_AGENT": "Spustiť agenta", 8 | "BUTTON_STOP_AGENT": "Zastaviť agenta" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/sk/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Angličtina", 3 | "FRENCH": "Francúzština", 4 | "SPANISH": "Španielčina", 5 | "GERMAN": "Nemčina", 6 | "JAPANESE": "Japončina", 7 | "KOREAN": "Kórejčina", 8 | "CHINESE": "Čínština", 9 | "PORTUGEES": "Portugalčina", 10 | "ITALIAN": "Taliančina", 11 | "DUTCH": "Holandčina", 12 | "POLSKI": "Poľština", 13 | "HUNGARIAN": "Maďarčina", 14 | "ROMANIAN": "Rumunčina", 15 | "SLOVAK": "Slovenčina" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/sk/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Teplota", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Vyššie hodnoty robia výstup viac náhodným, zatiaľ čo nižšie hodnoty ho zameriavajú a určujú.", 4 | "LOOP": "Smyčka", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Ovládajte maximálny počet slučiek, ktoré spustí agent (vyššia hodnota znamená viac volaní API).", 6 | "TOKENS": "Tokeny", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Ovládajte maximálny počet tokenov použitých v každom volaní API (vyššia hodnota poskytuje podrobnejšie odpovede, ale je drahšia).", 8 | "SETTINGS_DIALOG_HEADER": "Nastavenia ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Tu môžete pridať svoj OpenAI API kľúč. To znamená, že musíte platiť za použitie vlastného OpenAI tokenu, ale získate väčší prístup k ChatGPT! Okrem toho môžete vybrať akýkoľvek model ponúkaný OpenAI.", 10 | "INFO_TO_USE_GPT4": "Na použitie modelu GPT-4 je potrebné zadať aj API kľúč. Môžete ho získať", 11 | "HERE": "tu", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(Predplatné ChatGPT Plus nebude fungovať)", 13 | "API_KEY": "API kľúč", 14 | "ADVANCED_SETTINGS": "Pokročilé nastavenia", 15 | "NOTE_TO_GET_OPENAI_KEY": "POZNÁMKA: Na získanie API kľúča musíte zaregistrovať OpenAI účet, ktorý môžete urobiť na nasledujúcej adrese:", 16 | "LINK": "Získanie API kľúča", 17 | "NOTE_API_KEY_USAGE": "Tento kľúč sa použije iba počas aktuálnej relácie prehliadača.", 18 | "LABEL_MODEL": "Model", 19 | "LANG": "Jazyk" 20 | } -------------------------------------------------------------------------------- /public/locales/uk/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 Ми спостерігаємо надзвичайний трафік, очікуються затримки та помилки, якщо ви не використовуєте свій власний API-ключ 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> Створіть агента, додавши ім'я та мету, а потім клацніть кнопку \"Запустити агента!\"", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 Ви можете вказати свій власний ключ OpenAI API на вкладці Налаштування, щоб підвищити ліміти!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ Підтримайте розвиток AgentGPT. 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "Розгляньте можливість підтримки проекту на GitHub.", 7 | "SUPPORT_NOW": "Підтримати зараз 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "Розпочато нову мету:", 9 | "THINKING": "Думаємо...", 10 | "TASK_ADDED": "Завдання додано:", 11 | "COMPLETING": "Виконання:", 12 | "NO_MORE_TASKS": "Більше немає підзадач для цього:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "Текст скопійовано в буфер обміну", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "Не вдалося скопіювати текст в буфер обміну", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(Оновіть сторінку або запустіть агента вручну, якщо це займає більше 30 секунд)" 16 | } -------------------------------------------------------------------------------- /public/locales/uk/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Save", 3 | "IMAGE": "Image", 4 | "COPY": "Copy", 5 | "EXPORT": "Export", 6 | "RESET": "Reset", 7 | "CLOSE": "Close", 8 | "LOOP": "Loop", 9 | "CURRENT_TASKS": "Current Tasks", 10 | "ADDING_TASK": "Adding Task" 11 | } -------------------------------------------------------------------------------- /public/locales/uk/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "Допомога", 3 | "SETTINGS_BUTTON": "Налаштування", 4 | "MY_AGENTS": "Мої агенти", 5 | "SIGN_IN_NOTICE": "Увійдіть, щоб зберегти своїх агентів та керувати своїм обліковим записом!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "Спочатку вам потрібно створити та зберегти свого першого агента, перш ніж тут що-небудь з'явиться!", 7 | "SIGN_IN": "Увійти", 8 | "SIGN_OUT": "Вийти", 9 | "ACCOUNT" : "Обліковий запис", 10 | "USER_IMAGE": "Зображення користувача" 11 | } 12 | -------------------------------------------------------------------------------- /public/locales/uk/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "ПОМИЛКА при доступі до ключа OpenAI API. Будь ласка, перевірте ключ API або спробуйте пізніше.", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "ПОМИЛКА при додаванні додаткових завдань. Можливо, наша модель не може обробити відповідь, тому так сталося. Продовження...", 4 | "RATE_LIMIT_EXCEEDED": "Досягнуто максимальну кількість запитів! Будь ласка, сповільніть...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "Цей агент досяг максимальної кількості запусків. Щоб зберегти кошти, цей агент тепер припиняє свою роботу... Максимальну кількість запусків агента можна налаштувати в налаштуваннях.", 6 | "DEMO_LOOPS_REACHED": "Вибачте, але це демонстраційний додаток, тому ми не можемо запускати агентів занадто довго. Примітка: якщо ви хочете запускати довші роботи, будь ласка, вкажіть власний ключ API в налаштуваннях. Припинення...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "Агент був вручну вимкнутий.", 8 | "ALL_TASKS_COMPLETETD": "Всі завдання виконано. Припинення...", 9 | "ERROR_API_KEY_QUOTA": "ПОМИЛКА при використанні ключа OpenAI API. Ви перевищили свою поточну квоту, будь ласка, перевірте свої рахункові дані.", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "ПОМИЛКА: Ваш ключ OpenAI API не має доступу до GPT-4. Спочатку вам потрібно зареєструватися в черзі OpenAI. (Це відрізняється від ChatGPT Plus)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "ПОМИЛКА при отриманні початкових завдань. Спробуйте ще раз, сформулюйте мету агента ясніше або змініть її таким чином, щоб вона відповідала нашій моделі. Припинення...", 12 | "INVALID_OPENAI_API_KEY": "ПОМИЛКА недійсний OpenAI API-ключ" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/uk/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "Ласкаво просимо до AgentGPT", 3 | "INTRODUCING_AGENTGPT": "дозволяє вам налаштовувати та запускати власних незалежних агентів штучного інтелекту через свій веб-браузер. Назвіть вашого персоналізованого агента штучного інтелекту та визначте його ціль. Агент ШІ намагається досягти заданої мети, створюючи завдання, виконуючи їх та оцінюючи їх результати 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "Ця платформа наразі перебуває у бета-версії, на даний момент ми працюємо над наступними функціями:", 5 | "LONG_TERM_MEMORY": "Довготривала пам'ять 🧠", 6 | "WEB_BROWSING": "Веб-перегляд 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "Взаємодія з веб-сайтами та людьми 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "Слідкуйте за нашими досягненнями на:" 9 | } -------------------------------------------------------------------------------- /public/locales/uk/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "Бета", 3 | "HEADING_DESCRIPTION": "Збирайте, налаштовуйте та встановлюйте автономних агентів ШІ у своєму браузері.", 4 | "AGENT_NAME": "Ім'я", 5 | "LABEL_AGENT_GOAL": "Мета", 6 | "PLACEHOLDER_AGENT_GOAL": "Зробити світ кращим місцем", 7 | "BUTTON_DEPLOY_AGENT": "Запустити агента", 8 | "BUTTON_STOP_AGENT": "Зупинити агента" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/uk/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "Англійська", 3 | "FRENCH": "Французька", 4 | "SPANISH": "Іспанська", 5 | "GERMAN": "Німецька", 6 | "JAPANESE": "Японська", 7 | "KOREAN": "Корейська", 8 | "CHINESE": "Китайська", 9 | "PORTUGEES": "Португальська", 10 | "ITALIAN": "Італійська", 11 | "DUTCH": "Голландська", 12 | "POLSKI": "Польська", 13 | "HUNGARIAN": "Угорська", 14 | "ROMANIAN": "Румунська", 15 | "SLOVAK": "Словаць" 16 | } 17 | -------------------------------------------------------------------------------- /public/locales/uk/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "Температура", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "Вищі значення роблять вихід більш випадковим, тоді як нижчі значення зосередженішими та більш визначеними.", 4 | "LOOP": "Цикл", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "Керує максимальною кількістю циклів, які виконує агент (більш високе значення призводить до більшої кількості API-викликів).", 6 | "TOKENS": "Токени", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "Керує максимальною кількістю токенів, які використовуються в кожному API-виклику (більше значення дає більш детальні відповіді, але коштує більше).", 8 | "SETTINGS_DIALOG_HEADER": "Налаштування ⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "Тут ви можете додати свій API-ключ OpenAI. Це означає, що вам потрібно буде платити за використання свого власного токену OpenAI, але ви отримаєте більший доступ до ChatGPT! Крім того, ви можете вибрати будь-яку модель, яку пропонує OpenAI.", 10 | "INFO_TO_USE_GPT4": "Для використання моделі GPT-4 потрібно також вказати ключ API. Ви можете отримати його", 11 | "HERE": "тут", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(Підписка ChatGPT Plus не буде працювати)", 13 | "API_KEY": "API ключ", 14 | "ADVANCED_SETTINGS": "Розширені налаштування", 15 | "NOTE_TO_GET_OPENAI_KEY": "ПРИМІТКА: Для отримання ключа API вам потрібно зареєструватися в обліковому записі OpenAI, що можна зробити за наступним посиланням:", 16 | "LINK": "Запит ключа API", 17 | "NOTE_API_KEY_USAGE": "Цей ключ використовується лише протягом поточної сесії браузера.", 18 | "LABEL_MODEL": "Модель", 19 | "LANG": "Мова" 20 | } -------------------------------------------------------------------------------- /public/locales/zh/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "EXPERIENCING_EXCEPTIONAL_TRAFFIC": "🚨 我们正在经历异常的流量,请预计会有延迟和错误,如果您没有使用自己的API密钥 🚨", 3 | "CREATE_AN_AGENT_DESCRIPTION": "> 创建一个代理,添加名称和目标,然后单击\"启动代理!\"按钮", 4 | "YOU_CAN_PROVIDE_YOUR_API_KEY": "📢 您可以在设置选项卡中提供自己的OpenAI API密钥以获得提高的限制!", 5 | "HELP_SUPPORT_THE_ADVANCEMENT_OF_AGENTGPT": "💝️ 支持AgentGPT的发展。 💝️", 6 | "CONSIDER_SPONSORING_ON_GITHUB": "通过GitHub赞助该项目。", 7 | "SUPPORT_NOW": "现在支持 🚀", 8 | "EMBARKING_ON_NEW_GOAL": "迎接新目标:", 9 | "THINKING": "思考中...", 10 | "TASK_ADDED": "任务已添加:", 11 | "COMPLETING": "完成:", 12 | "NO_MORE_TASKS": "没有更多的子任务可以使用:", 13 | "CONSOLE_TEXT_COPIED_TO_CLIPBOARD": "文本已复制到剪贴板", 14 | "CONSOLE_UNABLE_TO_COPY_TO_CLIPBOARD": "无法将文本复制到剪贴板", 15 | "RESTART_IF_IT_TAKES_X_SEC": "(如果需要30秒以上,请刷新页面或手动重新启动代理)" 16 | } -------------------------------------------------------------------------------- /public/locales/zh/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "SAVE": "Save", 3 | "IMAGE": "Image", 4 | "COPY": "Copy", 5 | "EXPORT": "Export", 6 | "RESET": "Reset", 7 | "CLOSE": "Close", 8 | "LOOP": "Loop", 9 | "CURRENT_TASKS": "Current Tasks", 10 | "ADDING_TASK": "Adding Task" 11 | } -------------------------------------------------------------------------------- /public/locales/zh/drawer.json: -------------------------------------------------------------------------------- 1 | { 2 | "HELP_BUTTON": "帮助", 3 | "SETTINGS_BUTTON": "设置", 4 | "MY_AGENTS": "我的代理人", 5 | "SIGN_IN_NOTICE": "请登录以保存您的代理人并管理您的帐户!", 6 | "NEED_TO_SIGN_IN_AND_CREATE_AGENT_FIRST": "在此显示任何内容之前,您需要先创建和保存第一个代理人!", 7 | "SIGN_IN": "登录", 8 | "SIGN_OUT": "退出", 9 | "ACCOUNT" : "帐户", 10 | "USER_IMAGE": "用户图片" 11 | } -------------------------------------------------------------------------------- /public/locales/zh/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "ERROR_ACCESSING_OPENAI_API_KEY": "在连接 OpenAI API 时出错。请检查 API 密钥,或稍后再试。", 3 | "ERROR_ADDING_ADDITIONAL_TASKS": "添加其他任务时出错。可能是因为我们的模型无法处理您的响应和结果。继续...", 4 | "RATE_LIMIT_EXCEEDED": "已达到最大查询次数!请放慢速度...😅", 5 | "AGENT_MAXED_OUT_LOOPS": "此代理已达到可运行循环的最大次数。为了节省您的钱包,此代理现在将停止... 可以在设置中配置代理运行循环的最大次数。", 6 | "DEMO_LOOPS_REACHED": "抱歉,因为这是一个演示应用程序,所以我们无法让代理运行太长时间。备注:如果您想运行更长时间,请在设置中提供自己的 API 密钥。停止...", 7 | "AGENT_MANUALLY_SHUT_DOWN": "代理已手动关闭。", 8 | "ALL_TASKS_COMPLETETD": "所有任务已完成。停止...", 9 | "ERROR_API_KEY_QUOTA": "使用 OpenAI API 密钥时出错。您已超出当前配额,请检查您的帐单信息。", 10 | "ERROR_OPENAI_API_KEY_NO_GPT4": "错误:您的 OpenAI API 密钥没有 GPT-4 访问权限。您首先需要在 OpenAI 等待列表中注册。 (这与 ChatGPT Plus 不同)", 11 | "ERROR_RETRIEVE_INITIAL_TASKS": "检索初始任务时出错。请重试,更清楚地表达代理目标,或者修改代理以使其符合我们的模型。停止...", 12 | "INVALID_OPENAI_API_KEY": "錯誤,OpenAI API 金鑰無效" 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/zh/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME_TO_AGENT_GPT": "欢迎使用AgentGPT", 3 | "INTRODUCING_AGENTGPT": "让您能够通过浏览器配置和运行自主的AI代理。命名您的定制AI代理并定义其目标。AI代理通过创建任务,执行任务,然后评估其结果来尝试实现指定的目标 🚀", 4 | "PLATFORM_BETA_DESCRIPTION": "该平台目前处于beta版,我们目前正在处理以下内容:", 5 | "LONG_TERM_MEMORY": "长期记忆 🧠", 6 | "WEB_BROWSING": "网络浏览 🌐", 7 | "INTERACTION_WITH_WEBSITES_AND_PEOPLE": "与网站和人们的互动 👨‍👩‍👦", 8 | "FOLLOW_THE_JOURNEY": "在以下方面关注我们的旅程:" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/zh/indexPage.json: -------------------------------------------------------------------------------- 1 | { 2 | "BETA": "贝塔", 3 | "HEADING_DESCRIPTION": "在浏览器中编译,配置和安装自主 AI 代理。", 4 | "AGENT_NAME": "名称", 5 | "LABEL_AGENT_GOAL": "目标", 6 | "PLACEHOLDER_AGENT_GOAL": "让世界变得更美好", 7 | "BUTTON_DEPLOY_AGENT": "运行代理", 8 | "BUTTON_STOP_AGENT": "停止代理" 9 | } -------------------------------------------------------------------------------- /public/locales/zh/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ENGLISH": "英语", 3 | "FRENCH": "法语", 4 | "SPANISH": "西班牙语", 5 | "GERMAN": "德语", 6 | "JAPANESE": "日语", 7 | "KOREAN": "韩语", 8 | "CHINESE": "中文", 9 | "PORTUGEES": "葡萄牙语", 10 | "ITALIAN": "意大利语", 11 | "DUTCH": "荷兰语", 12 | "POLSKI": "波兰语", 13 | "HUNGARIAN": "匈牙利语", 14 | "ROMANIAN": "罗马尼亚语", 15 | "SLOVAK": "斯洛伐克语" 16 | } -------------------------------------------------------------------------------- /public/locales/zh/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "TEMPERATURE": "温度", 3 | "HIGHER_VALUES_MAKE_OUTPUT_MORE_RANDOM": "较高的值会使输出更加随机,而较低的值会使其更加聚焦和明确。", 4 | "LOOP": "循环", 5 | "CONTROL_THE_MAXIMUM_NUM_OF_LOOPS": "控制代理程序运行的最大循环次数(较高的值会导致更多的API调用)。", 6 | "TOKENS": "令牌", 7 | "CONTROL_MAXIMUM_OF_TOKENS_DESCRIPTION": "控制每个API调用中使用的令牌的最大数量(较高的值会产生更详细的响应,但成本更高)。", 8 | "SETTINGS_DIALOG_HEADER": "设置⚙", 9 | "HERE_YOU_CAN_ADD_YOUR_OPENAI_API_KEY": "您可以在这里添加OpenAI API密钥。这意味着您需要支付使用自己的OpenAI令牌的费用,但您将获得更大的ChatGPT访问权限!此外,您还可以选择任何OpenAI提供的模型。", 10 | "INFO_TO_USE_GPT4": "使用GPT-4模型需要提供API密钥。您可以在此处获取。", 11 | "HERE": "这里", 12 | "SUBSCRIPTION_WILL_NOT_WORK": "(ChatGPT Plus订阅不起作用)", 13 | "API_KEY": "API密钥", 14 | "ADVANCED_SETTINGS": "高级设置", 15 | "NOTE_TO_GET_OPENAI_KEY": "注意:要获取API密钥,您需要注册一个OpenAI帐户,可以在以下链接上完成:", 16 | "LINK": "获取API密钥", 17 | "NOTE_API_KEY_USAGE": "此密钥仅在当前浏览器会话中使用。", 18 | "LABEL_MODEL": "模型", 19 | "LANG": "语言" 20 | } -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / -------------------------------------------------------------------------------- /public/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Agent-LLM", 3 | "short_name": "Agent-LLM", 4 | "icons": [ 5 | { 6 | "src": "/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | ], 11 | "theme_color": "#ffffff", 12 | "background_color": "#ffffff", 13 | "display": "standalone" 14 | } 15 | -------------------------------------------------------------------------------- /public/tokenizer.model: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/public/tokenizer.model -------------------------------------------------------------------------------- /public/vicuna-7b-v1_webgpu.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/public/vicuna-7b-v1_webgpu.wasm -------------------------------------------------------------------------------- /public/wizardlm-7b_webgpu.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/public/wizardlm-7b_webgpu.wasm -------------------------------------------------------------------------------- /sentry.edge.config.ts: -------------------------------------------------------------------------------- 1 | // // This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). 2 | // // The config you add here will be used whenever one of the edge features is loaded. 3 | // // Note that this config is unrelated to the Verel Edge Runtime and is also required when running locally. 4 | // // https://docs.sentry.io/platforms/javascript/guides/nextjs/ 5 | // 6 | // import * as Sentry from "@sentry/nextjs"; 7 | // 8 | // Sentry.init({ 9 | // dsn: process.env.SENTRY_DSN, 10 | // tracesSampleRate: 0.01, 11 | // debug: false, 12 | // }); 13 | -------------------------------------------------------------------------------- /sentry.server.config.ts: -------------------------------------------------------------------------------- 1 | // // This file configures the initialization of Sentry on the server. 2 | // // The config you add here will be used whenever the server handles a request. 3 | // // https://docs.sentry.io/platforms/javascript/guides/nextjs/ 4 | // 5 | // import * as Sentry from "@sentry/nextjs"; 6 | // 7 | // Sentry.init({ 8 | // dsn: process.env.SENTRY_DSN, 9 | // tracesSampleRate: 0.01, 10 | // debug: false, 11 | // }); 12 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd "$(dirname "$0")" || exit 3 | 4 | is_valid_sk_key() { 5 | local api_key=$1 6 | local pattern="^sk-[a-zA-Z0-9]{48}$" 7 | [[ $api_key =~ $pattern ]] && return 0 || return 1 8 | } 9 | 10 | echo -n "Enter your OpenAI Key (eg: sk...) or press enter to continue with no key: " 11 | read OPENAI_API_KEY 12 | 13 | if is_valid_sk_key $OPENAI_API_KEY || [ -z "$OPENAI_API_KEY" ]; then 14 | echo "Valid API key" 15 | else 16 | echo "Invalid API key. Please ensure that you have billing set up on your OpenAI account" 17 | exit 18 | fi 19 | 20 | NEXTAUTH_SECRET=$(openssl rand -base64 32) 21 | 22 | ENV="NODE_ENV=development\n\ 23 | NEXTAUTH_SECRET=$NEXTAUTH_SECRET\n\ 24 | NEXTAUTH_URL=http://localhost:3000\n\ 25 | OPENAI_API_KEY=$OPENAI_API_KEY\n\ 26 | DATABASE_URL=file:../db/db.sqlite\n" 27 | 28 | printf $ENV > .env 29 | 30 | if [ "$1" = "--docker" ]; then 31 | printf $ENV > .env.docker 32 | source .env.docker 33 | docker build --build-arg NODE_ENV=$NODE_ENV -t agentgpt . 34 | docker run -d --name agentgpt -p 3000:3000 -v $(pwd)/db:/app/db agentgpt 35 | elif [ "$1" = "--docker-compose" ]; then 36 | docker-compose up -d --remove-orphans 37 | else 38 | printf $ENV > .env 39 | ./prisma/useSqlite.sh 40 | npm install 41 | npm run dev 42 | fi 43 | -------------------------------------------------------------------------------- /src/agent/web-llm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idosal/AgentLLM/927c4ae7443a157f2bb744257ab22063c050e0af/src/agent/web-llm.ts -------------------------------------------------------------------------------- /src/agent/web-llm/llmChat.ts: -------------------------------------------------------------------------------- 1 | import type { BaseLLMParams } from "langchain/llms"; 2 | import { LLM } from "langchain/llms/base"; 3 | import { generateCompletion } from "./llmChatPipeline"; 4 | 5 | export interface LLMChatConfig { 6 | cacheUrl: string; 7 | wasmUrl: string; 8 | maxGenLength: number; 9 | maxWindowLength: number; 10 | meanGenLength: number; 11 | kvConfig: { numLayers: number; shape: number[]; dtype: string }; 12 | tokenizer: string; 13 | setInitProgress: (percent: number) => void; 14 | temperature: number; 15 | } 16 | 17 | export interface LLMChatInput extends BaseLLMParams { 18 | config: LLMChatConfig; 19 | } 20 | 21 | export class WebLLMChat extends LLM implements LLMChatInput { 22 | config: { 23 | cacheUrl: string; 24 | wasmUrl: string; 25 | maxGenLength: number; 26 | maxWindowLength: number; 27 | meanGenLength: number; 28 | kvConfig: { numLayers: number; shape: number[]; dtype: string }; 29 | tokenizer: string; 30 | setInitProgress: (percent: number) => void; 31 | temperature: number; 32 | }; 33 | 34 | _llmType() { 35 | return "webLlm"; 36 | } 37 | 38 | constructor(fields: LLMChatInput) { 39 | super(fields ?? {}); 40 | this.config = fields.config; 41 | } 42 | 43 | async _call(prompt: string, _stop?: string[]): Promise { 44 | try { 45 | return await generateCompletion(prompt, this.config); 46 | } catch (err) { 47 | throw err; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/components/Accordion.tsx: -------------------------------------------------------------------------------- 1 | import { Disclosure as AccordionPrimitive } from "@headlessui/react"; 2 | import { FaChevronDown } from "react-icons/fa"; 3 | 4 | interface AccordionProps { 5 | child: React.ReactNode; 6 | name: string; 7 | } 8 | 9 | const Accordion = ({ child, name }: AccordionProps) => { 10 | return ( 11 | 12 | {({ open }) => ( 13 | <> 14 | 15 | {name} 16 | 19 | 20 | 21 | {child} 22 | 23 | 24 | )} 25 | 26 | ); 27 | }; 28 | 29 | export default Accordion; 30 | -------------------------------------------------------------------------------- /src/components/Badge.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import clsx from "clsx"; 3 | 4 | interface BadgeProps { 5 | children: React.ReactNode; 6 | } 7 | 8 | const Badge = ({ children }: BadgeProps) => { 9 | return ( 10 |
17 | {children} 18 |
19 | ); 20 | }; 21 | 22 | export default Badge; 23 | -------------------------------------------------------------------------------- /src/components/Button.tsx: -------------------------------------------------------------------------------- 1 | import type { ForwardedRef } from "react"; 2 | import React, { forwardRef, useState } from "react"; 3 | import Loader from "./loader"; 4 | import clsx from "clsx"; 5 | import Ping from "./Ping"; 6 | 7 | export interface ButtonProps { 8 | type?: "button" | "submit" | "reset"; 9 | className?: string; 10 | icon?: React.ReactNode; 11 | children?: React.ReactNode; 12 | loader?: boolean; 13 | disabled?: boolean; 14 | ping?: boolean; 15 | enabledClassName?: string; 16 | onClick?: (e: React.MouseEvent) => Promise | void; 17 | } 18 | 19 | const Button = forwardRef( 20 | (props: ButtonProps, ref: ForwardedRef) => { 21 | const [loading, setLoading] = useState(false); 22 | const onClick = (e: React.MouseEvent) => { 23 | if (props.loader == true) setLoading(true); 24 | 25 | try { 26 | void Promise.resolve(props.onClick?.(e)).then(); 27 | } catch (e) { 28 | setLoading(false); 29 | } 30 | }; 31 | 32 | return ( 33 | 60 | ); 61 | } 62 | ); 63 | 64 | Button.displayName = "Button"; 65 | export default Button; 66 | -------------------------------------------------------------------------------- /src/components/Combobox.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import { Combobox as ComboboxPrimitive } from "@headlessui/react"; 3 | import { FaChevronDown } from "react-icons/fa"; 4 | 5 | interface ComboboxProps { 6 | value: string; 7 | options: string[] | any[]; 8 | disabled?: boolean; 9 | onChange: (value: string) => void; 10 | styleClass?: { [key: string]: string }; 11 | } 12 | 13 | const Combobox = ({ 14 | options, 15 | value, 16 | disabled, 17 | onChange, 18 | styleClass, 19 | }: ComboboxProps) => { 20 | const [query, setQuery] = useState(""); 21 | const handleInputChange = (event: React.ChangeEvent) => { 22 | if ( 23 | event.target instanceof HTMLInputElement && 24 | typeof event.target.value === "string" 25 | ) { 26 | setQuery(event.target.value); 27 | } 28 | }; 29 | 30 | const filteredOptions = 31 | query === "" 32 | ? options 33 | : options.filter((opt) => 34 | opt.toLowerCase().includes(query.toLowerCase()) 35 | ); 36 | 37 | return ( 38 | 39 |
40 | 44 | 45 | 47 | 48 | {filteredOptions.map((opt) => ( 49 | 54 | {opt} 55 | 56 | ))} 57 | 58 |
59 |
60 | ); 61 | }; 62 | 63 | export default Combobox; 64 | -------------------------------------------------------------------------------- /src/components/DottedGridBackground.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import clsx from "clsx"; 3 | 4 | interface DottedGridBackgroundProps { 5 | children: React.ReactNode; 6 | className?: string; 7 | } 8 | 9 | const DottedGridBackground = ({ 10 | children, 11 | className, 12 | }: DottedGridBackgroundProps) => { 13 | return
{children}
; 14 | }; 15 | 16 | export default DottedGridBackground; 17 | -------------------------------------------------------------------------------- /src/components/FadingHr.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import clsx from "clsx"; 3 | 4 | interface FadingHrProps { 5 | className?: string; 6 | } 7 | 8 | const FadingHr: React.FC = ({ className }) => { 9 | return
; 10 | }; 11 | export default FadingHr; 12 | -------------------------------------------------------------------------------- /src/components/Label.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Tooltip from "./Tooltip"; 3 | import type { toolTipProperties } from "./types"; 4 | import clsx from "clsx"; 5 | 6 | interface LabelProps { 7 | left?: React.ReactNode; 8 | type?: string; 9 | toolTipProperties?: toolTipProperties; 10 | } 11 | 12 | const Label = ({ type, left, toolTipProperties }: LabelProps) => { 13 | const isTypeTextArea = () => { 14 | return type === "textarea"; 15 | }; 16 | 17 | return ( 18 | 28 | {left} 29 | 30 | } 31 | style={{ 32 | container: `md:w-1/4`, 33 | }} 34 | sideOffset={0} 35 | toolTipProperties={toolTipProperties} 36 | > 37 | ); 38 | }; 39 | 40 | export default Label; 41 | -------------------------------------------------------------------------------- /src/components/LanguageCombobox.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from "react"; 2 | import { useTranslation, i18n } from "next-i18next"; 3 | import type { Language } from "../utils/languages"; 4 | import { ENGLISH, languages } from "../utils/languages"; 5 | import { useRouter } from "next/router"; 6 | import Input from "./Input"; 7 | import { FaGlobe } from "react-icons/fa"; 8 | 9 | const LanguageCombobox = () => { 10 | const { i18n } = useTranslation(); 11 | const router = useRouter(); 12 | const [actualLanguage, setActualLanguage] = useState( 13 | findLanguage(i18n.language) 14 | ); 15 | 16 | const handleInputChange = (languageName: string) => { 17 | const selectedLanguage = findLanguage(languageName); 18 | i18n.changeLanguage(selectedLanguage.code).then(() => { 19 | setActualLanguage(selectedLanguage); 20 | handleLanguageChange(selectedLanguage.code); 21 | }); 22 | }; 23 | 24 | const handleLanguageChange = (value: string) => { 25 | const { pathname, asPath, query } = router; 26 | router 27 | .push({ pathname, query }, asPath, { 28 | locale: value, 29 | }) 30 | .catch(console.error); 31 | }; 32 | 33 | return ( 34 | 37 | 38 | {`${i18n.t("LANG", "LANG", { 39 | ns: "settings", 40 | })}`} 41 | 42 | } 43 | type="combobox" 44 | value={`${actualLanguage.flag} ${actualLanguage.name}`} 45 | onChange={(e) => handleInputChange(e.target.value)} 46 | setValue={(e) => handleInputChange(e)} 47 | attributes={{ 48 | options: languages.map((lang) => `${lang.flag} ${lang.name}`), 49 | }} 50 | /> 51 | ); 52 | }; 53 | 54 | const findLanguage = (nameOrLocale: string): Language => { 55 | const selectedLanguage = languages.find( 56 | (lang) => 57 | lang.code === nameOrLocale || 58 | lang.name === nameOrLocale.substring(4).trim() 59 | ); 60 | return selectedLanguage || ENGLISH; 61 | }; 62 | 63 | export default LanguageCombobox; 64 | -------------------------------------------------------------------------------- /src/components/Menu.tsx: -------------------------------------------------------------------------------- 1 | import type { ReactNode } from "react"; 2 | import { Fragment } from "react"; 3 | import { Menu as MenuPrimitive, Transition } from "@headlessui/react"; 4 | import { FaChevronDown } from "react-icons/fa"; 5 | import clsx from "clsx"; 6 | 7 | interface MenuProps { 8 | icon?: ReactNode; 9 | name: string; 10 | items: JSX.Element[]; 11 | disabled?: boolean; 12 | onChange: (value: string) => void; 13 | styleClass?: { [key: string]: string }; 14 | } 15 | 16 | function Menu({ 17 | icon, 18 | name, 19 | items, 20 | disabled, 21 | onChange, 22 | styleClass, 23 | }: MenuProps) { 24 | return ( 25 | 26 |
27 | 30 |
{icon}
31 |

{name}

32 | 33 |
34 | 42 | 43 | {items.map((item) => { 44 | const itemName = (item.props as { name: string }).name; 45 | return ( 46 | 47 |
{item}
48 |
49 | ); 50 | })} 51 |
52 |
53 |
54 |
55 | ); 56 | } 57 | 58 | export default Menu; 59 | -------------------------------------------------------------------------------- /src/components/Ping.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const Ping = ({ color }: { color: "blue" | "white" }) => { 4 | const colorClasses = { 5 | primary: color == "blue" ? "bg-sky-400" : "bg-white", 6 | secondary: color == "blue" ? "bg-sky-400" : "bg-white", 7 | }; 8 | 9 | return ( 10 | 11 | 14 | 17 | 18 | ); 19 | }; 20 | 21 | export default Ping; 22 | -------------------------------------------------------------------------------- /src/components/SignInDialog.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Dialog from "./Dialog"; 3 | import Button from "./Button"; 4 | import { useAuth } from "../hooks/useAuth"; 5 | 6 | export interface SignInDialogProps { 7 | show: boolean; 8 | close: () => void; 9 | } 10 | 11 | export const SignInDialog = ({ show, close }: SignInDialogProps) => { 12 | const { signIn } = useAuth(); 13 | 14 | return ( 15 | void signIn()}>Sign in} 20 | > 21 |

22 | Please{" "} 23 | void signIn()}> 24 | sign in 25 | {" "} 26 | to deploy an Agent! 🤖 27 |

28 |
29 | ); 30 | }; 31 | -------------------------------------------------------------------------------- /src/components/SorryDialog.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Dialog from "./Dialog"; 3 | 4 | export interface WebSearchDialogProps { 5 | show: boolean; 6 | close: () => void; 7 | } 8 | 9 | export const SorryDialog = ({ show, close }: WebSearchDialogProps) => { 10 | return ( 11 | 12 |

Due to costs, we've had to momentarily disable web search 🌐

13 |
14 |

15 | Please monitor our  16 | 22 | Roadmap 23 |   24 | to understand when it may be back up. 25 |

26 |
27 | ); 28 | }; 29 | -------------------------------------------------------------------------------- /src/components/Switch.tsx: -------------------------------------------------------------------------------- 1 | import * as SwitchPrimitive from "@radix-ui/react-switch"; 2 | import { clsx } from "clsx"; 3 | import React, { useEffect, useState } from "react"; 4 | 5 | interface SwitchProps { 6 | value: boolean; 7 | onChange: (checked: boolean) => void; 8 | } 9 | 10 | const Switch = ({ value, onChange }: SwitchProps) => { 11 | const [checked, setChecked] = useState(false); 12 | 13 | // Due to SSR, we should only change the internal state after the initial render 14 | useEffect(() => { 15 | setChecked(value); 16 | }, [value]); 17 | 18 | const handleChange = (checked: boolean) => { 19 | onChange(checked); 20 | }; 21 | 22 | return ( 23 | 34 | 41 | 42 | ); 43 | }; 44 | 45 | export { Switch }; 46 | -------------------------------------------------------------------------------- /src/components/TaskWindow.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import FadeIn from "./motions/FadeIn"; 3 | import Expand from "./motions/expand"; 4 | import { Task } from "../types/agentTypes"; 5 | import { getMessageContainerStyle, getTaskStatusIcon } from "./utils/helpers"; 6 | import { useMessageStore } from "./stores"; 7 | import { FaListAlt } from "react-icons/fa"; 8 | import { useTranslation } from "react-i18next"; 9 | import { useAgentStore } from "./stores"; 10 | import clsx from "clsx"; 11 | 12 | export const TaskWindow = () => { 13 | const tasks = useMessageStore.use.tasks(); 14 | const [t] = useTranslation(); 15 | return ( 16 | 17 |
18 | {t("Current tasks")} 19 |
20 |
21 |
22 | {tasks.map((task, i) => ( 23 | 24 | ))} 25 |
26 |
27 |
28 | ); 29 | }; 30 | 31 | const Task = ({ task }: { task: Task }) => { 32 | const isAgentStopped = useAgentStore.use.isAgentStopped(); 33 | return ( 34 | 35 |
42 | {getTaskStatusIcon(task, { isAgentStopped })} 43 | {task.value} 44 |
45 |
46 | ); 47 | }; 48 | -------------------------------------------------------------------------------- /src/components/Tooltip.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import * as TooltipPrimitive from "@radix-ui/react-tooltip"; 3 | import type { toolTipProperties } from "./types"; 4 | 5 | interface TooltipProps { 6 | child: React.ReactNode; 7 | toolTipProperties?: toolTipProperties; 8 | style?: { [key: string]: string }; 9 | sideOffset: number; 10 | } 11 | 12 | const Tooltip = ({ 13 | child, 14 | toolTipProperties = { message: "", disabled: true }, 15 | style = { container: "" }, 16 | sideOffset, 17 | }: TooltipProps) => { 18 | const { message, disabled } = toolTipProperties; 19 | return ( 20 |
21 | 22 | 23 | {child} 24 | {disabled ? null : ( 25 | 26 | 30 | {message} 31 | 32 | 33 | 34 | )} 35 | 36 | 37 |
38 | ); 39 | }; 40 | 41 | export default Tooltip; 42 | -------------------------------------------------------------------------------- /src/components/WindowButton.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Ping from "./Ping"; 3 | 4 | type WindowButtonProps = { 5 | ping?: boolean; // Toggles the ping animation 6 | onClick?: () => void; 7 | icon: React.ReactNode; 8 | name: string; 9 | styleClass?: { [key: string]: string }; 10 | }; 11 | 12 | const WindowButton = ({ 13 | ping, 14 | onClick, 15 | icon, 16 | name, 17 | styleClass, 18 | }: WindowButtonProps) => { 19 | return ( 20 |
26 | {ping ? : <>} 27 | {icon} 28 |

{name}

29 |
30 | ); 31 | }; 32 | 33 | export default WindowButton; 34 | -------------------------------------------------------------------------------- /src/components/loader.tsx: -------------------------------------------------------------------------------- 1 | import { Ring } from "@uiball/loaders"; 2 | 3 | interface LoaderProps { 4 | className?: string; 5 | size?: number; 6 | speed?: number; 7 | lineWeight?: number; 8 | } 9 | 10 | const Loader: React.FC = ({ 11 | className, 12 | size = 16, 13 | speed = 2, 14 | lineWeight = 7, 15 | }) => { 16 | return ( 17 |
18 | 19 |
20 | ); 21 | }; 22 | 23 | export default Loader; 24 | -------------------------------------------------------------------------------- /src/components/motions/FadeIn.tsx: -------------------------------------------------------------------------------- 1 | import { motion } from "framer-motion"; 2 | import type { PropsWithChildren } from "react"; 3 | 4 | interface MotionProps extends PropsWithChildren { 5 | className?: string; 6 | delay?: number; 7 | } 8 | 9 | const FadeIn = (props: MotionProps) => ( 10 | 16 | {props.children} 17 | 18 | ); 19 | 20 | FadeIn.displayName = "FadeOut"; 21 | export default FadeIn; 22 | -------------------------------------------------------------------------------- /src/components/motions/FadeOut.tsx: -------------------------------------------------------------------------------- 1 | import { motion } from "framer-motion"; 2 | import type { PropsWithChildren } from "react"; 3 | 4 | interface MotionProps extends PropsWithChildren { 5 | className?: string; 6 | delay?: number; 7 | } 8 | 9 | const FadeOut = (props: MotionProps) => ( 10 | 16 | {props.children} 17 | 18 | ); 19 | 20 | FadeOut.displayName = "FadeOut"; 21 | export default FadeOut; 22 | -------------------------------------------------------------------------------- /src/components/motions/expand.tsx: -------------------------------------------------------------------------------- 1 | import { motion } from "framer-motion"; 2 | import type { PropsWithChildren } from "react"; 3 | 4 | interface MotionProps extends PropsWithChildren { 5 | className?: string; 6 | delay?: number; 7 | type?: "spring" | "tween"; 8 | } 9 | 10 | const Expand = (props: MotionProps) => ( 11 | 21 | {props.children} 22 | 23 | ); 24 | 25 | Expand.displayName = "Expand"; 26 | export default Expand; 27 | -------------------------------------------------------------------------------- /src/components/motions/popin.tsx: -------------------------------------------------------------------------------- 1 | import { motion } from "framer-motion"; 2 | import type { PropsWithChildren } from "react"; 3 | 4 | interface MotionProps extends PropsWithChildren { 5 | className?: string; 6 | delay?: number; 7 | } 8 | 9 | const PopIn = (props: MotionProps) => ( 10 | 17 | {props.children} 18 | 19 | ); 20 | 21 | PopIn.displayName = "PopIn"; 22 | export default PopIn; 23 | -------------------------------------------------------------------------------- /src/components/pdf/MyDocument.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactPDF, { 3 | Document, 4 | Font, 5 | Page, 6 | StyleSheet, 7 | Text, 8 | } from "@react-pdf/renderer"; 9 | import View = ReactPDF.View; 10 | 11 | Font.register({ 12 | family: "Roboto", 13 | fonts: [ 14 | { 15 | src: "/fonts/Roboto-Regular.ttf", 16 | }, 17 | ], 18 | }); 19 | 20 | const styles = StyleSheet.create({ 21 | page: { 22 | flexDirection: "column", 23 | backgroundColor: "#FFFFFF", 24 | padding: 40, 25 | }, 26 | horizontalRule: { 27 | borderBottomWidth: 1, 28 | borderBottomColor: "#000", 29 | borderBottomStyle: "solid", 30 | }, 31 | section: { 32 | fontSize: 12, 33 | fontFamily: "Roboto", 34 | marginVertical: 10, 35 | lineHeight: 1.5, 36 | }, 37 | }); 38 | 39 | // NOTE: This should only ever be imported dynamically to reduce load times 40 | const MyDocument: React.FC<{ 41 | textSections: string[]; 42 | }> = ({ textSections }) => ( 43 | 44 | 45 | {textSections.map((text) => ( 46 | <> 47 | {text} 48 | 49 | 50 | ))} 51 | 52 | 53 | ); 54 | 55 | const HorizontalRule: React.FC = () => ; 56 | 57 | export default MyDocument; 58 | -------------------------------------------------------------------------------- /src/components/pdf/PDFButton.tsx: -------------------------------------------------------------------------------- 1 | import WindowButton from "../WindowButton"; 2 | import { FaFilePdf } from "react-icons/fa"; 3 | import { pdf } from "@react-pdf/renderer"; 4 | import React, { memo } from "react"; 5 | import type { Message } from "../../types/agentTypes"; 6 | import { MESSAGE_TYPE_GOAL, MESSAGE_TYPE_TASK } from "../../types/agentTypes"; 7 | 8 | import { useTranslation } from "react-i18next"; 9 | 10 | const PDFButton = ({ 11 | messages, 12 | name, 13 | }: { 14 | messages: Message[]; 15 | name: string; 16 | }) => { 17 | const textSections = getTextSections(messages); 18 | 19 | const downloadPDF = async () => { 20 | const MyDocument = (await import("./MyDocument")).default as React.FC<{ 21 | textSections: string[]; 22 | }>; 23 | 24 | const blob = await pdf().toBlob(); 25 | const url = URL.createObjectURL(blob); 26 | const link = document.createElement("a"); 27 | link.href = url; 28 | link.download = "my-document.pdf"; 29 | link.click(); 30 | URL.revokeObjectURL(url); 31 | }; 32 | 33 | return ( 34 | <> 35 | { 37 | downloadPDF().catch(console.error); 38 | }} 39 | icon={} 40 | name={name} 41 | /> 42 | 43 | ); 44 | }; 45 | 46 | const getTextSections = (messages: Message[]): string[] => { 47 | const [t] = useTranslation(); 48 | 49 | // Note "Thinking" messages have no `value` so they show up as new lines 50 | return messages 51 | .map((message) => { 52 | if (message.type == MESSAGE_TYPE_GOAL) { 53 | return `${t("AGENT_GOAL", { ns: "indexPage" })}: ${message.value}`; 54 | } 55 | if (message.type == MESSAGE_TYPE_TASK) { 56 | if (message.info) { 57 | return `${t("EXECUTING", { ns: "common" })} "${message.value}": ${ 58 | message.info 59 | }`; 60 | } else { 61 | return `${t("ADDING_TASK", { ns: "common" })}: ${message.value}`; 62 | } 63 | } 64 | return message.value; 65 | }) 66 | .filter((message) => message !== ""); 67 | }; 68 | 69 | export default memo(PDFButton); 70 | -------------------------------------------------------------------------------- /src/components/stores/helpers.ts: -------------------------------------------------------------------------------- 1 | import type { StoreApi, UseBoundStore } from "zustand"; 2 | 3 | /* 4 | Automatically creates selectors for each states in store. 5 | Zustand recommends using selectors for calling state/actions for optimal performance 6 | Reference: https://docs.pmnd.rs/zustand/guides/auto-generating-selectors 7 | */ 8 | type WithSelectors = S extends { getState: () => infer T } 9 | ? S & { use: { [K in keyof T]: () => T[K] } } 10 | : never; 11 | 12 | export const createSelectors = >>( 13 | _store: S 14 | ) => { 15 | const store = _store as WithSelectors; 16 | store.use = {}; 17 | for (const k of Object.keys(store.getState())) { 18 | (store.use as any)[k] = () => store((s) => s[k as keyof typeof s]); 19 | } 20 | 21 | return store; 22 | }; 23 | -------------------------------------------------------------------------------- /src/components/stores/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./messageStore"; 2 | export * from "./agentStore"; 3 | -------------------------------------------------------------------------------- /src/components/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./propTypes"; 2 | -------------------------------------------------------------------------------- /src/components/types/propTypes.ts: -------------------------------------------------------------------------------- 1 | export type toolTipProperties = { 2 | message?: string; 3 | disabled?: boolean; 4 | }; 5 | -------------------------------------------------------------------------------- /src/env/client.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | import { clientEnv, clientSchema } from "./schema.mjs"; 3 | 4 | const _clientEnv = clientSchema.safeParse(clientEnv); 5 | 6 | export const formatErrors = ( 7 | /** @type {import('zod').ZodFormattedError,string>} */ 8 | errors, 9 | ) => 10 | Object.entries(errors) 11 | .map(([name, value]) => { 12 | if (value && "_errors" in value) 13 | return `${name}: ${value._errors.join(", ")}\n`; 14 | }) 15 | .filter(Boolean); 16 | 17 | if (!_clientEnv.success) { 18 | console.error( 19 | "❌ Invalid environment variables:\n", 20 | ...formatErrors(_clientEnv.error.format()), 21 | ); 22 | throw new Error("Invalid environment variables"); 23 | } 24 | 25 | for (let key of Object.keys(_clientEnv.data)) { 26 | if (!key.startsWith("NEXT_PUBLIC_")) { 27 | console.warn( 28 | `❌ Invalid public environment variable name: ${key}. It must begin with 'NEXT_PUBLIC_'`, 29 | ); 30 | 31 | throw new Error("Invalid public environment variable name"); 32 | } 33 | } 34 | 35 | export const env = _clientEnv.data; 36 | -------------------------------------------------------------------------------- /src/env/server.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | /** 3 | * This file is included in `/next.config.mjs` which ensures the app isn't built with invalid env vars. 4 | * It has to be a `.mjs`-file to be imported there. 5 | */ 6 | import { serverSchema, serverEnv } from "./schema.mjs"; 7 | import { env as clientEnv, formatErrors } from "./client.mjs"; 8 | 9 | const _serverEnv = serverSchema.safeParse(serverEnv); 10 | 11 | if (!_serverEnv.success) { 12 | console.error( 13 | "❌ Invalid environment variables:\n", 14 | ...formatErrors(_serverEnv.error.format()), 15 | ); 16 | throw new Error("Invalid environment variables"); 17 | } 18 | 19 | for (let key of Object.keys(_serverEnv.data)) { 20 | if (key.startsWith("NEXT_PUBLIC_")) { 21 | console.warn("❌ You are exposing a server-side env-variable:", key); 22 | 23 | throw new Error("You are exposing a server-side env-variable"); 24 | } 25 | } 26 | 27 | export const env = { ..._serverEnv.data, ...clientEnv }; 28 | -------------------------------------------------------------------------------- /src/hooks/useAgent.ts: -------------------------------------------------------------------------------- 1 | import { api } from "../utils/api"; 2 | import type { Message } from "../types/agentTypes"; 3 | import { useAuth } from "./useAuth"; 4 | 5 | export interface SaveProps { 6 | name: string; 7 | goal: string; 8 | tasks: Message[]; 9 | } 10 | 11 | export function useAgent() { 12 | const utils = api.useContext(); 13 | // eslint-disable-next-line @typescript-eslint/no-empty-function 14 | const voidFunc = () => {}; 15 | const saveMutation = api.agent.create.useMutation({ 16 | onSuccess: (data) => { 17 | utils.agent.getAll.setData(voidFunc(), (oldData) => [ 18 | data, 19 | ...(oldData ?? []), 20 | ]); 21 | }, 22 | }); 23 | 24 | // const saveAgent = (data: SaveProps) => { 25 | // if (status === "authenticated") saveMutation.mutate(data); 26 | // }; 27 | 28 | return () => console.log('not implemented'); 29 | } 30 | -------------------------------------------------------------------------------- /src/hooks/useAuth.ts: -------------------------------------------------------------------------------- 1 | import type { Session } from "next-auth"; 2 | import { signIn, signOut, useSession } from "next-auth/react"; 3 | import { useRouter } from "next/router"; 4 | import { useEffect } from "react"; 5 | import { z } from "zod"; 6 | 7 | const UUID_KEY = "uuid"; 8 | 9 | type Provider = "google" | "github"; 10 | 11 | interface Auth { 12 | signIn: (provider?: Provider) => any; 13 | signOut: () => any; 14 | status: "authenticated" | "unauthenticated" | "loading"; 15 | session: Session | null; 16 | } 17 | 18 | export function useAuth(): Auth { 19 | const { data: session, status } = useSession(); 20 | 21 | useEffect(() => { 22 | if (status != "authenticated" || !session?.user) return; 23 | 24 | const user = session.user; 25 | z.string() 26 | .uuid() 27 | .parseAsync(user.email) 28 | .then((uuid) => window.localStorage.setItem(UUID_KEY, uuid)) 29 | .catch(() => undefined); 30 | }, [session, status]); 31 | 32 | const handleSignIn = async () => await signIn(); 33 | 34 | const handleSignOut = async () => { 35 | return await signOut({ 36 | callbackUrl: "/", 37 | }).catch(); 38 | }; 39 | 40 | return { 41 | signIn: handleSignIn, 42 | signOut: handleSignOut, 43 | status, 44 | session, 45 | }; 46 | } 47 | -------------------------------------------------------------------------------- /src/hooks/useScript.ts: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react'; 2 | 3 | const useScript = (url: string) => { 4 | useEffect(() => { 5 | const script = document.createElement('script'); 6 | 7 | script.src = url; 8 | script.async = true; 9 | 10 | document.body.appendChild(script); 11 | 12 | return () => { 13 | document.body.removeChild(script); 14 | } 15 | }, [url]); 16 | }; 17 | 18 | export default useScript; 19 | -------------------------------------------------------------------------------- /src/hooks/useSettings.ts: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import type { ModelSettings, SettingModel } from "../utils/types"; 3 | 4 | import { 5 | DEFAULT_MAX_LOOPS_CUSTOM_API_KEY, 6 | DEFAULT_MAX_LOOPS_FREE, 7 | GPT_35_TURBO, 8 | WIZARDLM, 9 | } from "../utils/constants"; 10 | 11 | const SETTINGS_KEY = "AGENTLLM_SETTINGS"; 12 | const DEFAULT_SETTINGS: ModelSettings = { 13 | customModelName: WIZARDLM, 14 | customTemperature: 0.7 as const, 15 | customMaxLoops: DEFAULT_MAX_LOOPS_CUSTOM_API_KEY, 16 | maxTokens: 300 as const, 17 | setInitProgress: console.log, 18 | }; 19 | 20 | const loadSettings = () => { 21 | const settings = { ...DEFAULT_SETTINGS }; 22 | 23 | if (typeof window === "undefined") { 24 | return settings; 25 | } 26 | 27 | const data = localStorage.getItem(SETTINGS_KEY); 28 | if (!data) { 29 | return settings; 30 | } 31 | 32 | try { 33 | const obj = JSON.parse(data) as ModelSettings; 34 | Object.entries(obj).forEach(([key, value]) => { 35 | if (settings.hasOwnProperty(key)) { 36 | // @ts-ignore 37 | settings[key] = value; 38 | } 39 | }); 40 | } catch (error) {} 41 | 42 | return DEFAULT_SETTINGS; 43 | }; 44 | 45 | export function useSettings(): SettingModel { 46 | const [settings, setSettings] = useState(loadSettings); 47 | 48 | const saveSettings = (settings: ModelSettings) => { 49 | setSettings(settings); 50 | localStorage.setItem(SETTINGS_KEY, JSON.stringify(settings)); 51 | }; 52 | 53 | const resetSettings = () => { 54 | localStorage.removeItem(SETTINGS_KEY); 55 | setSettings((_) => { 56 | return { ...DEFAULT_SETTINGS }; 57 | }); 58 | }; 59 | 60 | return { 61 | settings, 62 | saveSettings, 63 | resetSettings, 64 | }; 65 | } 66 | -------------------------------------------------------------------------------- /src/hooks/useTypeSafeTranslation.ts: -------------------------------------------------------------------------------- 1 | import { useTranslation } from "next-i18next"; 2 | 3 | export function useTypeSafeTranslation() { 4 | const [t] = useTranslation(); 5 | return (key: string) => t(key) ?? key; 6 | } 7 | -------------------------------------------------------------------------------- /src/middleware.ts: -------------------------------------------------------------------------------- 1 | import type { NextRequest } from "next/server"; 2 | import { ipAddress } from "@vercel/edge"; 3 | import { isAllowed } from "./server/redis"; 4 | 5 | export const config = { 6 | // Only run the middleware on agent routes 7 | matcher: "/api/agent/:path*", 8 | }; 9 | 10 | function ipFallback(request: Request) { 11 | const xff = request.headers.get("x-forwarded-for"); 12 | return xff 13 | ? Array.isArray(xff) 14 | ? (xff[0] as string) 15 | : xff.split(",")[0] 16 | : "127.0.0.1"; 17 | } 18 | 19 | async function shouldRateLimit(request: NextRequest): Promise { 20 | const ip = ipAddress(request) || ipFallback(request); 21 | if (!ip) { 22 | return false; 23 | } 24 | 25 | return !(await isAllowed(ip)); 26 | } 27 | 28 | const rateLimitedResponse = () => 29 | new Response("Too many requests, please try again later.", { 30 | status: 429, 31 | }); 32 | 33 | // noinspection JSUnusedGlobalSymbols 34 | export async function middleware(request: NextRequest) { 35 | if (await shouldRateLimit(request)) { 36 | return rateLimitedResponse(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import { type AppType } from "next/app"; 2 | 3 | import { api } from "../utils/api"; 4 | import "../styles/globals.css"; 5 | import { Analytics } from "@vercel/analytics/react"; 6 | import { appWithTranslation, useTranslation } from "next-i18next"; 7 | import { useEffect } from "react"; 8 | import nextI18NextConfig from "../../next-i18next.config.js"; 9 | 10 | const MyApp: AppType = ({ 11 | Component, 12 | pageProps: { ...pageProps }, 13 | }) => { 14 | const { i18n } = useTranslation(); 15 | 16 | useEffect(() => { 17 | i18n.on("languageChanged", () => { 18 | document.documentElement.lang = i18n.language; 19 | }); 20 | document.documentElement.lang = i18n.language; 21 | }, [i18n]); 22 | 23 | return ( 24 | <> 25 | 26 | 27 | 28 | ); 29 | }; 30 | 31 | export default api.withTRPC(appWithTranslation(MyApp, nextI18NextConfig)); 32 | -------------------------------------------------------------------------------- /src/pages/api/agent/analyze.ts: -------------------------------------------------------------------------------- 1 | import type { NextRequest } from "next/server"; 2 | import { NextResponse } from "next/server"; 3 | import type { RequestBody } from "../../../utils/interfaces"; 4 | import AgentService from "../../../services/agent-service"; 5 | import { serverError } from "../responses"; 6 | 7 | export const config = { 8 | runtime: "edge", 9 | }; 10 | 11 | const handler = async (request: NextRequest) => { 12 | try { 13 | const { modelSettings, goal, task } = (await request.json()) as RequestBody; 14 | if (task === undefined) { 15 | return; 16 | } 17 | 18 | const response = await AgentService.analyzeTaskAgent( 19 | modelSettings, 20 | goal, 21 | task 22 | ); 23 | return NextResponse.json({ 24 | response: response, 25 | }); 26 | } catch (e) {} 27 | 28 | return serverError(); 29 | }; 30 | 31 | export default handler; 32 | -------------------------------------------------------------------------------- /src/pages/api/agent/create.ts: -------------------------------------------------------------------------------- 1 | import type { NextRequest } from "next/server"; 2 | import { NextResponse } from "next/server"; 3 | import type { RequestBody } from "../../../utils/interfaces"; 4 | import AgentService from "../../../services/agent-service"; 5 | import { serverError } from "../responses"; 6 | 7 | export const config = { 8 | runtime: "edge", 9 | }; 10 | 11 | const handler = async (request: NextRequest) => { 12 | try { 13 | const { modelSettings, goal, language, tasks, lastTask, result, completedTasks } = 14 | (await request.json()) as RequestBody; 15 | 16 | if (tasks === undefined || lastTask === undefined || result === undefined) { 17 | return; 18 | } 19 | 20 | const newTasks = await AgentService.createTasksAgent( 21 | modelSettings, 22 | goal, 23 | language, 24 | tasks, 25 | lastTask, 26 | result, 27 | completedTasks 28 | ); 29 | 30 | return NextResponse.json({ newTasks }); 31 | } catch (e) {} 32 | 33 | return serverError(); 34 | }; 35 | 36 | export default handler; 37 | -------------------------------------------------------------------------------- /src/pages/api/agent/execute.ts: -------------------------------------------------------------------------------- 1 | import type { NextRequest } from "next/server"; 2 | import { NextResponse } from "next/server"; 3 | import type { RequestBody } from "../../../utils/interfaces"; 4 | import AgentService, { DefaultAnalysis } from "../../../services/agent-service"; 5 | import { serverError } from "../responses"; 6 | 7 | export const config = { 8 | runtime: "edge", 9 | }; 10 | 11 | const handler = async (request: NextRequest) => { 12 | try { 13 | const { modelSettings, goal, language, task, analysis } = 14 | (await request.json()) as RequestBody; 15 | if (task === undefined) { 16 | return; 17 | } 18 | 19 | const response = await AgentService.executeTaskAgent( 20 | modelSettings, 21 | goal, 22 | language, 23 | task, 24 | analysis || DefaultAnalysis 25 | ); 26 | return NextResponse.json({ 27 | response: response, 28 | }); 29 | } catch (e) {} 30 | 31 | return serverError(); 32 | }; 33 | 34 | export default handler; 35 | -------------------------------------------------------------------------------- /src/pages/api/agent/start.ts: -------------------------------------------------------------------------------- 1 | import type { NextRequest } from "next/server"; 2 | import { NextResponse } from "next/server"; 3 | import type { RequestBody } from "../../../utils/interfaces"; 4 | import AgentService from "../../../services/agent-service"; 5 | import { serverError } from "../responses"; 6 | 7 | export const config = { 8 | runtime: "edge", 9 | }; 10 | 11 | const handler = async (request: NextRequest) => { 12 | try { 13 | const { modelSettings, goal, language } = (await request.json()) as RequestBody; 14 | const newTasks = await AgentService.startGoalAgent(modelSettings, goal, language); 15 | return NextResponse.json({ newTasks }); 16 | } catch (e) {} 17 | 18 | return serverError(); 19 | }; 20 | 21 | export default handler; 22 | -------------------------------------------------------------------------------- /src/pages/api/auth/[...nextauth].ts: -------------------------------------------------------------------------------- 1 | // import NextAuth from "next-auth"; 2 | // import { authOptions } from "../../../server/auth"; 3 | // 4 | // export default NextAuth(authOptions); 5 | -------------------------------------------------------------------------------- /src/pages/api/responses.ts: -------------------------------------------------------------------------------- 1 | export const serverError = () => 2 | new Response("Internal Server Error", { 3 | status: 500, 4 | }); 5 | -------------------------------------------------------------------------------- /src/pages/api/trpc/[trpc].ts: -------------------------------------------------------------------------------- 1 | import { createNextApiHandler } from "@trpc/server/adapters/next"; 2 | 3 | import { env } from "../../../env/server.mjs"; 4 | import { createTRPCContext } from "../../../server/api/trpc"; 5 | import { appRouter } from "../../../server/api/root"; 6 | 7 | // export API handler 8 | export default createNextApiHandler({ 9 | router: appRouter, 10 | createContext: createTRPCContext, 11 | onError: 12 | env.NODE_ENV === "development" 13 | ? ({ path, error }) => { 14 | console.error( 15 | `❌ tRPC failed on ${path ?? ""}: ${error.message}`, 16 | ); 17 | } 18 | : undefined, 19 | }); 20 | -------------------------------------------------------------------------------- /src/server/api/root.ts: -------------------------------------------------------------------------------- 1 | import { createTRPCRouter } from "./trpc"; 2 | import { exampleRouter } from "./routers/example"; 3 | import { agentRouter } from "./routers/agentRouter"; 4 | import { accountRouter } from "./routers/account"; 5 | 6 | /** 7 | * This is the primary router for your server. 8 | * 9 | * All routers added in /api/routers should be manually added here 10 | */ 11 | export const appRouter = createTRPCRouter({ 12 | example: exampleRouter, 13 | agent: agentRouter, 14 | account: accountRouter, 15 | }); 16 | 17 | // export type definition of API 18 | export type AppRouter = typeof appRouter; 19 | -------------------------------------------------------------------------------- /src/server/api/routers/account.ts: -------------------------------------------------------------------------------- 1 | import { createTRPCRouter, protectedProcedure } from "../trpc"; 2 | // import Stripe from "stripe"; 3 | // import { env } from "../../../env/server.mjs"; 4 | // import { prisma } from "../../db"; 5 | // import { getCustomerId } from "../../../utils/stripe-utils"; 6 | 7 | // eslint-disable-next-line @typescript-eslint/no-unsafe-argument 8 | // const stripe = new Stripe(env.STRIPE_SECRET_KEY ?? "", { 9 | // apiVersion: "2022-11-15", 10 | // }); 11 | 12 | export const accountRouter = createTRPCRouter({ 13 | subscribe: protectedProcedure.mutation( ({ ctx }) => ''), 14 | manage: protectedProcedure.mutation( ({ ctx }) => ''), 15 | }); 16 | -------------------------------------------------------------------------------- /src/server/api/routers/agentRouter.ts: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | 3 | import { createTRPCRouter, protectedProcedure, publicProcedure } from "../trpc"; 4 | import { prisma } from "../../db"; 5 | import { messageSchema, MESSAGE_TYPE_TASK } from "../../../types/agentTypes"; 6 | 7 | const saveAgentParser = z.object({ 8 | name: z.string(), 9 | goal: z.string(), 10 | tasks: z.array(messageSchema), 11 | }); 12 | 13 | export const agentRouter = createTRPCRouter({ 14 | create: protectedProcedure 15 | .input(saveAgentParser) 16 | .mutation(async ({ input, ctx }) => { 17 | const agent = await prisma.agent.create({ 18 | data: { 19 | name: input.name, 20 | goal: input.goal, 21 | userId: ctx.session?.user?.id, 22 | }, 23 | }); 24 | 25 | const all = input.tasks.map((e, i) => { 26 | return prisma.agentTask.create({ 27 | data: { 28 | agentId: agent.id, 29 | type: e.type, 30 | ...(e.type === MESSAGE_TYPE_TASK && { status: e.status }), 31 | info: e.info, 32 | value: e.value, 33 | sort: i, 34 | }, 35 | }); 36 | }); 37 | 38 | await Promise.all(all); 39 | return agent; 40 | }), 41 | getAll: protectedProcedure.query(async ({ ctx }) => { 42 | return prisma.agent.findMany({ 43 | where: { 44 | userId: ctx.session?.user?.id, 45 | deleteDate: null, 46 | }, 47 | orderBy: { createDate: "desc" }, 48 | take: 20, 49 | }); 50 | }), 51 | findById: publicProcedure.input(z.string()).query(async ({ input, ctx }) => { 52 | const agent = await prisma.agent.findFirstOrThrow({ 53 | where: { id: input, deleteDate: null }, 54 | include: { 55 | tasks: { 56 | orderBy: { 57 | sort: "asc", 58 | }, 59 | }, 60 | }, 61 | }); 62 | 63 | return { 64 | ...agent, 65 | }; 66 | }), 67 | deleteById: protectedProcedure 68 | .input(z.string()) 69 | .mutation(async ({ input, ctx }) => { 70 | await prisma.agent.updateMany({ 71 | where: { id: input, userId: ctx.session?.user?.id }, 72 | data: { 73 | deleteDate: new Date(), 74 | }, 75 | }); 76 | }), 77 | }); 78 | -------------------------------------------------------------------------------- /src/server/api/routers/example.ts: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | 3 | import { createTRPCRouter, publicProcedure, protectedProcedure } from "../trpc"; 4 | 5 | export const exampleRouter = createTRPCRouter({ 6 | hello: publicProcedure 7 | .input(z.object({ text: z.string() })) 8 | .query(({ input }) => { 9 | return { 10 | greeting: `Hello ${input.text}`, 11 | }; 12 | }), 13 | getSecretMessage: protectedProcedure.query(() => { 14 | return "you can now see this secret message!"; 15 | }), 16 | }); 17 | -------------------------------------------------------------------------------- /src/server/db.ts: -------------------------------------------------------------------------------- 1 | import { PrismaClient } from "@prisma/client"; 2 | 3 | import { env } from "../env/server.mjs"; 4 | 5 | const globalForPrisma = globalThis as unknown as { prisma: PrismaClient }; 6 | 7 | export const prisma = 8 | globalForPrisma.prisma || 9 | new PrismaClient({ 10 | log: 11 | env.NODE_ENV === "development" ? ["query", "error", "warn"] : ["error"], 12 | }); 13 | 14 | if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma; 15 | -------------------------------------------------------------------------------- /src/server/redis.ts: -------------------------------------------------------------------------------- 1 | import { Ratelimit } from "@upstash/ratelimit"; // for deno: see above 2 | import { Redis } from "@upstash/redis"; 3 | import { env } from "../env/server.mjs"; 4 | 5 | const redisRateLimiter = new Ratelimit({ 6 | redis: new Redis({ 7 | url: env.UPSTASH_REDIS_REST_URL ?? "", 8 | token: env.UPSTASH_REDIS_REST_TOKEN ?? "", 9 | }), 10 | limiter: Ratelimit.slidingWindow( 11 | env.RATE_LIMITER_REQUESTS_PER_MINUTE ?? 100, 12 | "60 s" 13 | ), 14 | analytics: true, 15 | prefix: "@upstash/ratelimit", 16 | }); 17 | 18 | export const isAllowed = env.UPSTASH_REDIS_REST_TOKEN 19 | ? async (id: string) => (await redisRateLimiter.limit(id)).success 20 | : async (_: string) => Promise.resolve(true); 21 | -------------------------------------------------------------------------------- /src/types/next-auth.d.ts: -------------------------------------------------------------------------------- 1 | import type { DefaultSession } from "next-auth"; 2 | 3 | declare module "next-auth" { 4 | /** 5 | * Returned by `useSession`, `getSession` and received as a prop on the `SessionProvider` React Context 6 | */ 7 | interface Session { 8 | user: { 9 | id: string; 10 | } & DefaultSession["user"] & 11 | User; 12 | } 13 | 14 | interface User { 15 | role?: string; 16 | subscriptionId: string | undefined; 17 | image?: string; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/utils/constants.ts: -------------------------------------------------------------------------------- 1 | export const GPT_35_TURBO = "gpt-3.5-turbo" as const; 2 | export const GPT_4 = "gpt-4" as const; 3 | export const VICUNA = "Vicuna-7b" as const; 4 | export const WIZARDLM = "WizardLM-7b" as const; 5 | export const LLM_MODEL_NAMES = [VICUNA, WIZARDLM]; 6 | 7 | export const DEFAULT_MAX_LOOPS_FREE = 4 as const; 8 | export const DEFAULT_MAX_LOOPS_PAID = 16 as const; 9 | export const DEFAULT_MAX_LOOPS_CUSTOM_API_KEY = 50 as const; 10 | -------------------------------------------------------------------------------- /src/utils/i18next.n.ts: -------------------------------------------------------------------------------- 1 | import i18next from "i18next"; 2 | import { initReactI18next } from "react-i18next"; 3 | 4 | await i18next.use(initReactI18next).init({ 5 | fallbackLng: ["en"], 6 | debug: true, 7 | interpolation: { 8 | escapeValue: false, // react already safes from xss 9 | }, 10 | keySeparator: false, 11 | react: { 12 | useSuspense: false, 13 | }, 14 | defaultNS: "translation", 15 | backend: { 16 | loadPath: "./public/locales/{{lng}}/{{ns}}.json", 17 | crossDomain: false, 18 | }, 19 | }); 20 | 21 | export default i18next; 22 | -------------------------------------------------------------------------------- /src/utils/interfaces.ts: -------------------------------------------------------------------------------- 1 | import type { ModelSettings } from "./types"; 2 | import type { Analysis } from "../services/agent-service"; 3 | 4 | export interface RequestBody { 5 | modelSettings: ModelSettings; 6 | goal: string; 7 | language: string; 8 | task?: string; 9 | tasks?: string[]; 10 | lastTask?: string; 11 | result?: string; 12 | completedTasks?: string[]; 13 | analysis?: Analysis; 14 | } 15 | -------------------------------------------------------------------------------- /src/utils/languages.ts: -------------------------------------------------------------------------------- 1 | export type Language = { 2 | code: string; 3 | name: string; 4 | flag: string; 5 | }; 6 | 7 | export const ENGLISH = { code: "en", name: "English", flag: "🇺🇸" }; 8 | 9 | export const availableLanguages: Language[] = [ 10 | ENGLISH, 11 | { code: "fr", name: "Français", flag: "🇫🇷" }, 12 | { code: "es", name: "Español", flag: "🇪🇸" }, 13 | { code: "de", name: "Deutsch", flag: "🇩🇪" }, 14 | { code: "ja", name: "日本語", flag: "🇯🇵" }, 15 | { code: "ko", name: "한국어", flag: "🇰🇷" }, 16 | { code: "hr", name: "Hrvatski", flag: "🇭🇷" }, 17 | { code: "lt", name: "Lietuvių", flag: "🇱🇹" }, 18 | { code: "uk", name: "Українська", flag: "🇺🇦" }, 19 | { code: "zh", name: "中文", flag: "🇨🇳" }, 20 | { code: "pt", name: "Português", flag: "🇵🇹" }, 21 | { code: "it", name: "Italiano", flag: "🇮🇹" }, 22 | { code: "hu", name: "Magyar", flag: "🇭🇺" }, 23 | { code: "nl", name: "Nederlands", flag: "🇳🇱" }, 24 | { code: "pl", name: "Polski", flag: "🇵🇱" }, 25 | { code: "ru", name: "Русский", flag: "🇷🇺" }, 26 | { code: "ro", name: "Română", flag: "🇷🇴" }, 27 | { code: "sk", name: "Slovenčina", flag: "🇸🇰" }, 28 | ]; 29 | 30 | export const languages: Language[] = availableLanguages.sort((a, b) => 31 | a.name.localeCompare(b.name) 32 | ); 33 | -------------------------------------------------------------------------------- /src/utils/parsers.ts: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | import { StructuredOutputParser } from "langchain/output_parsers"; 3 | 4 | /* 5 | * Parsers are used by LangChain to easily prompt for a given format and also parse outputs. 6 | * https://js.langchain.com/docs/modules/prompts/output_parsers/ 7 | */ 8 | 9 | export const respondAction = "Respond"; 10 | export const actionParser = StructuredOutputParser.fromZodSchema( 11 | z.object({ 12 | // Enum type currently not supported 13 | action: z 14 | .string() 15 | .describe(`The action to take, either 'Question' or '${respondAction}'`), 16 | arg: z.string().describe("The argument to the action"), 17 | }) 18 | ); 19 | 20 | export const tasksParser = StructuredOutputParser.fromZodSchema( 21 | z.array(z.string()).describe("A list of tasks to complete") 22 | ); 23 | -------------------------------------------------------------------------------- /src/utils/stripe-utils.ts: -------------------------------------------------------------------------------- 1 | // import type Stripe from "stripe"; 2 | // 3 | // export const getCustomerId = ( 4 | // customer: string | Stripe.Customer | Stripe.DeletedCustomer | null 5 | // ) => { 6 | // if (!customer) throw new Error("No customer found"); 7 | // 8 | // switch (typeof customer) { 9 | // case "string": 10 | // return customer; 11 | // case "object": 12 | // return customer.id; 13 | // default: 14 | // throw new Error("Unexpected customer type"); 15 | // } 16 | // }; 17 | // 18 | // export const getCustomerEmail = async ( 19 | // stripe: Stripe, 20 | // customer: string | Stripe.Customer | Stripe.DeletedCustomer | null 21 | // ) => { 22 | // if (!customer) throw new Error("No customer found"); 23 | // 24 | // let c = customer; 25 | // if (typeof customer === "string") { 26 | // c = await stripe.customers.retrieve(customer); 27 | // } 28 | // 29 | // return (c as Stripe.Customer).email ?? ""; 30 | // }; 31 | -------------------------------------------------------------------------------- /src/utils/types.ts: -------------------------------------------------------------------------------- 1 | import type { TFunction } from "i18next"; 2 | 3 | export type ModelSettings = { 4 | // customApiKey?: string; 5 | customModelName?: string; 6 | customTemperature?: number; 7 | customMaxLoops?: number; 8 | setInitProgress: (percent: number) => void; 9 | maxTokens?: number; 10 | }; 11 | 12 | export type SettingModel = { 13 | settings: ModelSettings; 14 | saveSettings: (settings: ModelSettings) => void; 15 | resetSettings: () => void; 16 | }; 17 | 18 | export type Translation = TFunction<"translation", undefined>; 19 | -------------------------------------------------------------------------------- /src/utils/whitespace.ts: -------------------------------------------------------------------------------- 1 | function regex() { 2 | return /^[\s\f\n\r\t\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff\x09\x0a\x0b\x0c\x0d\x20\xa0]+$/; 3 | } 4 | 5 | export function isEmptyOrBlank(value: string) { 6 | return regex().test(value) || value === ''; 7 | } 8 | -------------------------------------------------------------------------------- /tailwind.config.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import("tailwindcss").Config} */ 2 | const defaultTheme = require("tailwindcss/defaultTheme"); 3 | 4 | module.exports = { 5 | content: ["./src/**/*.{js,ts,jsx,tsx}"], 6 | theme: { 7 | screens: { 8 | "xs": "300px", 9 | 10 | "sm-h": { "raw": "(min-height: 700px)" }, 11 | "md-h": { "raw": "(min-height: 800px)" }, 12 | "lg-h": { "raw": "(min-height: 1000px)" }, 13 | 14 | ...defaultTheme.screens 15 | }, 16 | extend: { 17 | boxShadow: { 18 | "3xl": "0 40px 70px -15px rgba(0, 0, 0, 0.40)" // Customize the shadow value according to your preferences. 19 | } 20 | } 21 | }, 22 | plugins: [ 23 | require("tailwindcss-radix") 24 | ] 25 | }; 26 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "noImplicitAny": false, 4 | "target": "es2017", 5 | "lib": ["dom", "dom.iterable", "esnext"], 6 | "allowJs": true, 7 | "skipLibCheck": true, 8 | "strict": true, 9 | "forceConsistentCasingInFileNames": true, 10 | "noEmit": true, 11 | "esModuleInterop": true, 12 | "module": "esnext", 13 | "moduleResolution": "node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "jsx": "preserve", 17 | "incremental": true, 18 | "noUncheckedIndexedAccess": true, 19 | }, 20 | "include": [ 21 | "next-env.d.ts", 22 | "**/*.ts", 23 | "**/*.tsx", 24 | "**/*.cjs", 25 | "**/*.mjs", 26 | "**/*.js" 27 | ], 28 | "exclude": ["node_modules", "venv"] 29 | } 30 | --------------------------------------------------------------------------------