base on Developer AI Persona Search Agent # š§± SolidGPT
# š What's this
SolidGPT is a AI searching assistant for developer that helps code and workspace semantic search
š„š„š„ Try SolidGPT VSCode Extension from the [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=aict.solidgpt)
Appreciate Star š us on our [SolidGPT Github](https://github.com/AI-Citizen/SolidGPT)
# Try SolidGPT VSCode Extension
1. Install SolidGPT VSCode Extension from the [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=aict.solidgpt)
# š Quick Start
Highly recommend to try SolidGPT VSCode Extension from the [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=aict.solidgpt).
Or you can follow the steps below to build from source.
## š¦ Build From Source
1. Pull the latest version of the SolidGPT from the GitHub repository.
1. Pip install the requirements.txt file under the SolidGPT root directory.
```sh
pip install -r requirements.txt
```
1. Open terminal and run the following command to start the server.
```sh
python run_api.py
```
1. Open terminal and run the following command to start the webapp.
```sh
cd solidportal
npm install
npm run dev
```
## āļøāļø Onborading your Codebase and Notion
1. Click Settings button on the right bottom corner.
<img width="124" alt="image" src="https://github.com/AI-Citizen/SolidGPT-Private/assets/39673228/451b52e3-4f79-478f-9ee9-5679a93a1656">
### 1. Setup Codebase
1. Enter your OpenAI API key. [Get OpenAI API Key](https://openai.com/blog/openai-api)
1. Enter the full path of the folder you wish to onboard. **Suggest onboard lower than 100 files, maximum support 500 files onboarding**.
<img width="315" alt="image" src="https://github.com/AI-Citizen/SolidGPT-Private/assets/39673228/62f1790a-196a-4088-a747-e91205e8fc32">
### 2. Setup Notion (Optional)
1. Configure the Notion API by getting your Notion API secret from [Notion API](https://developers.notion.com/docs/create-a-notion-integration#getting-started) and entering it on the Settings page
1. Give your integration page permissions. [Details](https://developers.notion.com/docs/create-a-notion-integration#give-your-integration-page-permissions)
1. Get Notion Page ID and entering it on the Settings page
<img width="669" alt="image" src="https://github.com/AI-Citizen/SolidGPT-Private/assets/39673228/ae2b5ab3-af61-44e7-bdc1-d81a33462d23">
<img width="315" alt="image" src="https://github.com/AI-Citizen/SolidGPT-Private/assets/39673228/6e96db5b-350a-4e8b-b9ca-b41ccfe6ce7c">
### 3. Pick chat resources and start chat
## š„ Usecase
- Talk to your codebase, save time hunting for the place to start a change or the right method to call.
- Ask any questions about your codebase, get the answer in seconds.
- Semantic search and summary in Notion, knows your project from documents and track the project sprint board and tickets.
- Get questions answered from your codebase and Notion, no more context switching.
## š Known Issue
1. [Intel Chip Mac]: permission denied
- Please run \`cd ~/.vscode/extensions\` and \`chmod -R 777 aict.solidgpt*\` in your terminal to allow the app to run.
## š£ Feedback!!
If you have any questions or feedback about our project, please don't hesitate to reach out to us. We greatly appreciate your suggestions!
- Email:
[email protected]
- GitHub Issues: For more technical inquiries, you can also create a new issue in our [GitHub repository](https://github.com/AI-Citizen/SolidGPT/issues).
We will respond to all questions within 2-3 business days.
## Data Safety
- SolidGPT will not collect any of users' data.
- SolidGPT using OpenAI series model API, using SolidGPT indicates that you have read, understood, and agreed to adhere to all terms of use associated with the OpenAI GPT series model API.
", Assign "at most 3 tags" to the expected json: {"id":"3615","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"