Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oconva/qvikchat-starter-template
Pre-configured project to get started with QvikChat quickly.
https://github.com/oconva/qvikchat-starter-template
ai chat-service chatbot conversational-ai genkit langchain qvikchat
Last synced: about 1 month ago
JSON representation
Pre-configured project to get started with QvikChat quickly.
- Host: GitHub
- URL: https://github.com/oconva/qvikchat-starter-template
- Owner: oconva
- License: mit
- Created: 2024-07-06T21:24:23.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-18T13:40:22.000Z (about 2 months ago)
- Last Synced: 2024-11-24T20:40:02.415Z (about 1 month ago)
- Topics: ai, chat-service, chatbot, conversational-ai, genkit, langchain, qvikchat
- Language: TypeScript
- Homepage: https://qvikchat.pkural.ca
- Size: 1.19 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# QvikChat Starter Template
This is a starter template for QvikChat. It comes pre-configured with the following features:
- **QvikChat**: QvikChat installed and configured to start serving chat endpoints.
- **TypeScript**: TypeScript to allow you to write type-safe code efficiently.
- **ESLint**: ESLint to enforce code quality and consistency.
- **Prettier**: Prettier to format your code automatically and ensure consistent code style.
- **Jest**: Jest to run your tests and ensure your code works as expected.
- **GitHub Actions**: GitHub Actions to run your tests and lint your code automatically on every push.
- **SWC**: For faster and more efficient TypeScript compilation.
- **PNPM**: PNPM to manage your dependencies efficiently.## Getting Started
Simply, clone the [QvikChat starter template](https://github.com/oconva/qvikchat-starter-template) to get started.
```bash copy
git clone https://github.com/oconva/qvikchat-starter-template.git
```### Setup Environment Variables
Create a `.env` file in the root of the project and add the following environment variables:
```env copy
GOOGLE_GENAI_API_KEY=
OPENAI_API_KEY=
GOOGLE_APPLICATION_CREDENTIALS=
```Alternatively, you can copy the `.env.tmp` file or rename it to `.env` and fill in the values.
By default QvikChat uses the Google GenAI, so to use QvikChat with default settings, you need to provide the `GOOGLE_GENAI_API_KEY`. You don't have to set values for other environment variables if you are using the default settings.
Add value to the `OPENAI_API_KEY` variable if you're going to use OpenAI models and to the `GOOGLE_APPLICATION_CREDENTIALS` variable if you're going to use Firebase Firestore.
### Running the Project
You can run the following commands to get started:
```bash copy
npm install # or pnpm install
npm run dev # or pnpm dev
```The starter template predefines some chat endpoints. Once, you run the project, you can test the endpoints from terminal using command below:
```bash copy
curl -X POST "http://127.0.0.1:3400/chat" -H "Content-Type: application/json" -d '{"data": { "query": "Answer in one sentence: What is Firebase Firestore?" } }'
```Above example points to `http://127.0.0.1:3400`. You can change this port and host depending on where you are running the server and on which port.
You could also use the [Genkit Developer UI](#genkit-developer-ui) to test the endpoints.
### Testing
The starter template comes with Jest pre-configured to run your tests, and some tests predefined in the `src/tests` directory. You can run the tests using the following command:
```bash copy
npm run test # or pnpm test
```Please ensure you have the environment variables set up before running the tests.
By default, Jest is configured to test the source code in the `src` directory. You can change the configuration in the `jest.config.js` file, along with any other Jest configurations you may want to change.
### Genkit Developer UI
You can run the Genkit developer UI to test the endpoints. Testing the endpoints using a graphical interface is probably the easiest way to get started. You can know more about the Genkit Developer UI [here](https://firebase.google.com/docs/genkit/devtools#genkit_developer_ui).
Start the Genkit developer UI:
```bash copy
npx genkit start
```OR, you can install the Genkit CLI globally:
```bash copy
npm i -g genkit
```Then start the Genkit developer UI:
```bash copy
genkit start
```