From caaefc47ce66dbee2916dfc4ba970b32252a11c5 Mon Sep 17 00:00:00 2001 From: shahraiz Date: Fri, 8 Dec 2023 17:02:52 +0100 Subject: [PATCH 1/2] blank init --- .../open_ai_chat/open_ai_chat/README.md | 37 ++++++++++ .../open_ai_chat/open_ai_chat/__init__.py | 0 .../open_ai_chat/open_ai_chat/admin.py | 3 + .../modules/open_ai_chat/open_ai_chat/apps.py | 0 .../open_ai_chat/migrations/__init__.py | 0 .../open_ai_chat/open_ai_chat/models.py | 4 ++ .../open_ai_chat/open_ai_chat/serializers.py | 3 + .../modules/open_ai_chat/open_ai_chat/urls.py | 7 ++ .../open_ai_chat/open_ai_chat/viewsets.py | 6 ++ .../modules/open_ai_chat/pyproject.toml | 3 + .../backend/modules/open_ai_chat/setup.py | 18 +++++ modules/open-ai-chat/meta.json | 11 +++ .../modules/open-ai-chat/README.md | 64 ++++++++++++++++++ .../modules/open-ai-chat/index.js | 28 ++++++++ .../modules/open-ai-chat/options.js | 16 +++++ .../modules/open-ai-chat/package.json | 15 ++++ modules/open-ai-chat/preview.png | Bin 0 -> 177864 bytes 17 files changed, 215 insertions(+) create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/README.md create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/__init__.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/admin.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/apps.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/__init__.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/models.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/serializers.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/urls.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/viewsets.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/pyproject.toml create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/setup.py create mode 100644 modules/open-ai-chat/meta.json create mode 100644 modules/open-ai-chat/modules/open-ai-chat/README.md create mode 100644 modules/open-ai-chat/modules/open-ai-chat/index.js create mode 100644 modules/open-ai-chat/modules/open-ai-chat/options.js create mode 100644 modules/open-ai-chat/modules/open-ai-chat/package.json create mode 100644 modules/open-ai-chat/preview.png diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/README.md b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/README.md new file mode 100644 index 000000000..fe100effa --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/README.md @@ -0,0 +1,37 @@ +## open ai chat backend configuration and information + +## Module description + +Enter a module description here. + +## Features + +- [ ] This module includes migrations. +- [ ] This module includes environment variables. +- [ ] This module requires manual configurations. +- [ ] This module can be configured with module options. + +## Environment variables + +```properties +ENV_VAR="value" +``` + +## 3rd party setup + +Create account... + +Include screenshots if possible here. + +## Dependencies + +Link to the READMEs of the packages that you used in this module. + +Dependencies used: +- package-name and link to the package + +## API details + +| Api Name | Param | Description | +| ------------------------------ |:------------:|:---------------------------------------------------------------| +| `/modules/module-name/endpoint/` | object `{something: 'string'}` | Description here.| diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/__init__.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/admin.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/admin.py new file mode 100644 index 000000000..e2a53a897 --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# your admin configuration here \ No newline at end of file diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/apps.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/apps.py new file mode 100644 index 000000000..e69de29bb diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/__init__.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/models.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/models.py new file mode 100644 index 000000000..e1205ac54 --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/models.py @@ -0,0 +1,4 @@ +from django.db import models +from django.conf import settings + +# Create your models here. \ No newline at end of file diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/serializers.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/serializers.py new file mode 100644 index 000000000..2a9e6bdd5 --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/serializers.py @@ -0,0 +1,3 @@ +from rest_framework import serializers + +# your serializer here diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/urls.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/urls.py new file mode 100644 index 000000000..1b9df0b1c --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/urls.py @@ -0,0 +1,7 @@ +from django.urls import path, include +from rest_framework import routers + +router = routers.DefaultRouter() +urlpatterns = [ + path('', include(router.urls)), +] \ No newline at end of file diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/viewsets.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/viewsets.py new file mode 100644 index 000000000..39a0c23c5 --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/viewsets.py @@ -0,0 +1,6 @@ +from rest_framework import viewsets +from rest_framework.views import APIView +from rest_framework import permissions, status +from rest_framework.response import Response + +# Create your views here. \ No newline at end of file diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/pyproject.toml b/modules/open-ai-chat/backend/modules/open_ai_chat/pyproject.toml new file mode 100644 index 000000000..7fd26b970 --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" \ No newline at end of file diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/setup.py b/modules/open-ai-chat/backend/modules/open_ai_chat/setup.py new file mode 100644 index 000000000..ded2ae8c0 --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/setup.py @@ -0,0 +1,18 @@ +from setuptools import setup +from setuptools.command.build import build + + +# Override build command +class BuildCommand(build): + def initialize_options(self): + build.initialize_options(self) + self.build_base = "/tmp" + + +setup( + name="cb_open_ai_chat", + version="0.1", + packages=["open_ai_chat"], + install_requires=[], + cmdclass={"build": BuildCommand}, +) \ No newline at end of file diff --git a/modules/open-ai-chat/meta.json b/modules/open-ai-chat/meta.json new file mode 100644 index 000000000..be9fd9e49 --- /dev/null +++ b/modules/open-ai-chat/meta.json @@ -0,0 +1,11 @@ +{ + "title": "open ai chat", + "description": "This is a simple chatbot like ChatGPT that uses the OpenAI API to generate responses.", + "root": "/", + "schema": { + "buttonText": { + "type": "string", + "minLength": 1 + } + } +} diff --git a/modules/open-ai-chat/modules/open-ai-chat/README.md b/modules/open-ai-chat/modules/open-ai-chat/README.md new file mode 100644 index 000000000..4214e9601 --- /dev/null +++ b/modules/open-ai-chat/modules/open-ai-chat/README.md @@ -0,0 +1,64 @@ +# open ai chat React native specs + +## Module description + +Enter a module description here. + +Include module's main features here and describe them. + +Include preview screenshots or videos here. + +## Features + +- [ ] This module includes environment variables. +- [ ] This module requires manual configurations. +- [ ] This module can be configured with module options. +- [ ] This module requires manual Android setup. +- [ ] This module requires manual iOS setup. + +## 3rd party setup + +Create account... + +Include screenshots if possible here. + +## Dependencies + +Link to the READMEs of the packages that you used in this module. + +Dependencies used: +- package-name and link to the package + +## Module Options + +### Global Configs + +Update the ``options/options.js`` file with your app's backend url. For example, if your app is called `my-app` and has a url of `https://my-app.botics.co`, your options.js file should look like this: +```js +export const globalOptions = { + ... + url: "https://my-app.botics.co", + ... +} +``` + +### Local Configs + +Update the value of the option in `modules/open-ai-chat/options.js`: +```js +const text = "I understand ..."; +``` + +## Manual Setup + +### Android setup + +Update your `android/app/build.gradle` file: +``` +``` +Update your `android/app/src/main/AndroidManifest.xml` file: + + +### iOS setup + +Update your `ios/open-ai-chat/Info.plist` file: diff --git a/modules/open-ai-chat/modules/open-ai-chat/index.js b/modules/open-ai-chat/modules/open-ai-chat/index.js new file mode 100644 index 000000000..a1b0fcdf0 --- /dev/null +++ b/modules/open-ai-chat/modules/open-ai-chat/index.js @@ -0,0 +1,28 @@ +import React, { useRef, useContext, useEffect, useState } from "react"; +import { + Text, + View, + TouchableOpacity, + FlatList, + ImageBackground +} from "react-native"; +import { OptionsContext, GlobalOptionsContext } from "@options"; + +const FeatureName = () => { + // More info on all the options is below in the API Reference... just some common use cases shown here + const options = useContext(OptionsContext); + const gOptions = useContext(GlobalOptionsContext); + + const { styles } = options; + + return ( + + open ai chat + + ); +}; + +export default { + title: "FeatureName", + navigator: FeatureName +}; diff --git a/modules/open-ai-chat/modules/open-ai-chat/options.js b/modules/open-ai-chat/modules/open-ai-chat/options.js new file mode 100644 index 000000000..f6beee363 --- /dev/null +++ b/modules/open-ai-chat/modules/open-ai-chat/options.js @@ -0,0 +1,16 @@ +import { StyleSheet } from "react-native"; + +const styles = StyleSheet.create({ + heading: { + height: 60, + backgroundColor: "#333333", + padding: 20, + alignItems: "flex-end", + flexDirection: "row", + justifyContent: "center" + }, +}); + +export default { + styles: styles +}; diff --git a/modules/open-ai-chat/modules/open-ai-chat/package.json b/modules/open-ai-chat/modules/open-ai-chat/package.json new file mode 100644 index 000000000..f0d3ce770 --- /dev/null +++ b/modules/open-ai-chat/modules/open-ai-chat/package.json @@ -0,0 +1,15 @@ +{ + "name": "@modules/open-ai-chat", + "version": "1.0.1", + "description": "open ai chat", + "private": true, + "main": "index.js", + "author": "Crowdbotics", + "license": "ISC", + "dependencies": { + + }, + "x-dependencies": { + + } +} \ No newline at end of file diff --git a/modules/open-ai-chat/preview.png b/modules/open-ai-chat/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..3405198e9bc7c051b75860864609a979a6228773 GIT binary patch literal 177864 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 Q3;Za`smOklF%ABI0JG^~kpKVy literal 0 HcmV?d00001 From 968384985b801d7c0da3e6a5a0214f7c5d7c3969 Mon Sep 17 00:00:00 2001 From: shahraiz Date: Sat, 23 Dec 2023 05:59:37 +0100 Subject: [PATCH 2/2] open ai chat --- .../open_ai_chat/open_ai_chat/admin.py | 86 ++++++++- .../open_ai_chat/migrations/0001_initial.py | 41 ++++ .../0002_openaiconfig_userconfig.py | 48 +++++ .../open_ai_chat/open_ai_chat/models.py | 60 +++++- .../open_ai_chat/services/OpenAI.py | 30 +++ .../open_ai_chat/services/__init__.py | 0 .../modules/open_ai_chat/open_ai_chat/urls.py | 2 + .../open_ai_chat/open_ai_chat/viewsets.py | 106 ++++++++++- .../modules/open-ai-chat/index.js | 177 ++++++++++++++++-- .../modules/open-ai-chat/options.js | 2 +- modules/open-ai-chat/store/open-api/api.js | 37 ++++ .../store/open-api/open-api.slice.js | 96 ++++++++++ 12 files changed, 666 insertions(+), 19 deletions(-) create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/0001_initial.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/0002_openaiconfig_userconfig.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/services/OpenAI.py create mode 100644 modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/services/__init__.py create mode 100644 modules/open-ai-chat/store/open-api/api.js create mode 100644 modules/open-ai-chat/store/open-api/open-api.slice.js diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/admin.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/admin.py index e2a53a897..e310b667d 100644 --- a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/admin.py +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/admin.py @@ -1,3 +1,87 @@ from django.contrib import admin +from .models import Conversation, Message, OpenAIConfig, UserConfig -# your admin configuration here \ No newline at end of file + +class MessageInline(admin.TabularInline): + model = Message + extra = 0 + readonly_fields = ('conversation', 'role', 'content', 'response','created_at', 'updated_at') + fieldsets = ( + (None, { + 'fields': ('conversation', 'role', 'content', 'response') + }), + ('Dates', { + 'fields': ('created_at', 'updated_at'), + }), + ) + +class ConversationAdmin(admin.ModelAdmin): + list_display = ('session', 'user', 'summary', 'created_at', 'updated_at') + search_fields = ('session', 'user', 'summary', 'created_at', 'updated_at') + readonly_fields = ('created_at', 'updated_at') + ordering = ('-created_at',) + list_filter = ('session', 'user', 'summary', 'created_at', 'updated_at') + fieldsets = ( + (None, { + 'fields': ('session', 'user', 'summary') + }), + ('Dates', { + 'fields': ('created_at', 'updated_at'), + }), + ) + inlines = [ + MessageInline, + ] +admin.site.register(Conversation, ConversationAdmin) + +class MessageAdmin(admin.ModelAdmin): + list_display = ('conversation', 'role', 'content', 'response', 'created_at', 'updated_at') + search_fields = ('conversation', 'role', 'content', 'response', 'created_at', 'updated_at') + readonly_fields = ('created_at', 'updated_at') + ordering = ('-created_at',) + list_filter = ('conversation', 'role', 'content', 'response', 'created_at', 'updated_at') + fieldsets = ( + (None, { + 'fields': ('conversation', 'role', 'content', 'response') + }), + ('Dates', { + 'fields': ('created_at', 'updated_at'), + }), + ) +admin.site.register(Message, MessageAdmin) + + +class OpenAIConfigAdmin(admin.ModelAdmin): + list_display = ('model', 'max_tokens', 'use_context', 'context_length', 'only_questions_in_context', 'summarize_context', 'initial_context', 'is_active', 'global_config', 'created_at', 'updated_at') + search_fields = ('model', 'max_tokens', 'use_context', 'context_length', 'only_questions_in_context', 'summarize_context', 'initial_context', 'is_active', 'global_config', 'created_at', 'updated_at') + readonly_fields = ('created_at', 'updated_at') + ordering = ('-created_at',) + list_filter = ('model', 'max_tokens', 'use_context', 'context_length', 'only_questions_in_context', 'summarize_context', 'initial_context', 'is_active', 'global_config', 'created_at', 'updated_at') + fieldsets = ( + (None, { + 'fields': ('model', 'max_tokens', 'use_context', 'context_length', 'only_questions_in_context', 'summarize_context', 'initial_context', 'is_active', 'global_config') + }), + ('Dates', { + 'fields': ('created_at', 'updated_at'), + }), + ) + +admin.site.register(OpenAIConfig, OpenAIConfigAdmin) + + +class UserConfigAdmin(admin.ModelAdmin): + list_display = ('user', 'config', 'created_at', 'updated_at') + search_fields = ('user', 'config', 'created_at', 'updated_at') + readonly_fields = ('created_at', 'updated_at') + ordering = ('-created_at',) + list_filter = ('user', 'config', 'created_at', 'updated_at') + fieldsets = ( + (None, { + 'fields': ('user', 'config') + }), + ('Dates', { + 'fields': ('created_at', 'updated_at'), + }), + ) + +admin.site.register(UserConfig, UserConfigAdmin) \ No newline at end of file diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/0001_initial.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/0001_initial.py new file mode 100644 index 000000000..98af7c0be --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/0001_initial.py @@ -0,0 +1,41 @@ +# Generated by Django 3.2.23 on 2023-12-12 22:43 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import uuid + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Conversation', + fields=[ + ('session', models.CharField(blank=True, max_length=255, null=True)), + ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('summary', models.TextField(blank=True, null=True)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Message', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('role', models.CharField(blank=True, max_length=255, null=True)), + ('content', models.TextField()), + ('response', models.TextField(blank=True, null=True)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('conversation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='open_ai_chat.conversation')), + ], + ), + ] diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/0002_openaiconfig_userconfig.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/0002_openaiconfig_userconfig.py new file mode 100644 index 000000000..d2d11d06a --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/migrations/0002_openaiconfig_userconfig.py @@ -0,0 +1,48 @@ +# Generated by Django 3.2.23 on 2023-12-23 04:32 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('open_ai_chat', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='OpenAIConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('model', models.CharField(blank=True, choices=[('gpt-3.5-turbo', 'gpt-3.5-turbo'), ('gpt-3.5-turbo-1106', 'gpt-3.5-turbo-1106'), ('gpt-3.5-turbo-16k', 'gpt-3.5-turbo-16k'), ('gpt-4-0314', 'gpt-4-0314')], max_length=255, null=True)), + ('max_tokens', models.IntegerField(blank=True, default=1000, null=True)), + ('use_context', models.BooleanField(default=True, help_text='Use context from previous messages')), + ('context_length', models.IntegerField(blank=True, default=3, help_text='Number of previous messages to use as context', null=True)), + ('only_questions_in_context', models.BooleanField(default=False, help_text='Only use questions in context')), + ('summarize_context', models.BooleanField(default=True, help_text='use summary as context')), + ('initial_context', models.TextField(blank=True, help_text='Initial context to use e.g. You are a crowdbotics assistant.', null=True)), + ('is_active', models.BooleanField(default=True, help_text='Is this config active')), + ('global_config', models.BooleanField(default=False, help_text='Is this config global')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ], + options={ + 'verbose_name': 'OpenAI Config', + 'verbose_name_plural': 'OpenAI Configs', + 'unique_together': {('is_active', 'global_config')}, + }, + ), + migrations.CreateModel( + name='UserConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('config', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='open_ai_chat.openaiconfig')), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/models.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/models.py index e1205ac54..99b7e9910 100644 --- a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/models.py +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/models.py @@ -1,4 +1,62 @@ +import uuid from django.db import models from django.conf import settings -# Create your models here. \ No newline at end of file +class Conversation(models.Model): + session = models.CharField(max_length=255, null=True, blank=True) + user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True) + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + summary = models.TextField(null=True, blank=True) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + def __str__(self) -> str: + return f"{self.session}" + + +class Message(models.Model): + conversation = models.ForeignKey(Conversation, on_delete=models.CASCADE, null=True, blank=True) + role = models.CharField(max_length=255, null=True, blank=True) + content = models.TextField() + response = models.TextField(null=True, blank=True) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + def __str__(self) -> str: + return f"{self.id} - {self.content}" + + +class OpenAIConfig(models.Model): + + MODELS = [ + ("gpt-3.5-turbo", "gpt-3.5-turbo"), + ("gpt-3.5-turbo-1106", "gpt-3.5-turbo-1106"), + ("gpt-3.5-turbo-16k", "gpt-3.5-turbo-16k"), + ("gpt-4-0314", "gpt-4-0314") + ] + + model = models.CharField(max_length=255, null=True, blank=True, choices=MODELS) + max_tokens = models.IntegerField(null=True, blank=True, default=1000) + use_context = models.BooleanField(default=True, help_text="Use context from previous messages") + context_length = models.IntegerField(null=True, blank=True, default=3, help_text="Number of previous messages to use as context") + only_questions_in_context = models.BooleanField(default=False, help_text="Only use questions in context") + summarize_context = models.BooleanField(default=True, help_text="use summary as context") + initial_context = models.TextField(null=True, blank=True, help_text="Initial context to use e.g. You are a crowdbotics assistant.") + is_active = models.BooleanField(default=True, help_text="Is this config active") + global_config = models.BooleanField(default=False, help_text="Is this config global") + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + def __str__(self) -> str: + return f"{self.id} - {self.model}" + + class Meta: + verbose_name = "OpenAI Config" + verbose_name_plural = "OpenAI Configs" + + +class UserConfig(models.Model): + user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True) + config = models.ForeignKey(OpenAIConfig, on_delete=models.CASCADE, null=True, blank=True) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) \ No newline at end of file diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/services/OpenAI.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/services/OpenAI.py new file mode 100644 index 000000000..fa5d2a348 --- /dev/null +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/services/OpenAI.py @@ -0,0 +1,30 @@ +import os +from openai import OpenAI as core_openai + +class OpenAI: + client = None + model = None + max_tokens = 1000 + def __init__(self, api_key=None, model='gpt-3.5-turbo'): + self.api_key = api_key or os.environ.get("OPENAI_API_KEY", "") + self.client = core_openai( + api_key=self.api_key, + ) + self.model = model + + # todo: calculate number of tokens based on question length + context length + model + # todo: add context to the question + + def ask(self, question, context=[]): + messages = context + messages.append({"role": "user", "content": question}) + messages.append({ + "role": "system", + "content": "follow the rules: rule 1. short 2-3 liner chat type answers. rule 2. you must iclude a summary at the end or every message, summary should include context from provided system message, current question and answer to be used as context for next message.", + }) + response = self.client.chat.completions.create( + messages=messages, + model=self.model, + max_tokens=self.max_tokens, + ) + return response.choices[0].message.content \ No newline at end of file diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/services/__init__.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/services/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/urls.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/urls.py index 1b9df0b1c..228067f16 100644 --- a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/urls.py +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/urls.py @@ -1,7 +1,9 @@ from django.urls import path, include from rest_framework import routers +from .viewsets import ConversationViewSet router = routers.DefaultRouter() +router.register(r'chat', ConversationViewSet, basename='openai-chat') urlpatterns = [ path('', include(router.urls)), ] \ No newline at end of file diff --git a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/viewsets.py b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/viewsets.py index 39a0c23c5..90af33acd 100644 --- a/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/viewsets.py +++ b/modules/open-ai-chat/backend/modules/open_ai_chat/open_ai_chat/viewsets.py @@ -1,6 +1,110 @@ +import os +import json from rest_framework import viewsets from rest_framework.views import APIView from rest_framework import permissions, status from rest_framework.response import Response -# Create your views here. \ No newline at end of file +from .services.OpenAI import OpenAI + +from .models import Conversation, Message, OpenAIConfig + +# Create your views here. +class ConversationViewSet(viewsets.ViewSet): + def list(self, request): + if not request.session.session_key: + request.session.create() + session = request.session.session_key + chat = Conversation.objects.filter(session=session).first() + messages = Message.objects.filter(conversation=chat) + resp = { + 'summary': chat.summary if chat else None, + 'messages': [] + } + """ + [{ + role: 'user', + content: 'That sounds great! How can I get in touch with you?', + created_at: new Date().toISOString(), + },] + """ + + for message in messages: + resp['messages'].append({ + 'role': "user", + 'content': message.content, + 'created_at': message.created_at, + }) + if message.response: + resp['messages'].append({ + 'role': "AI", + 'content': message.response, + 'created_at': message.created_at, + }) + + return Response(resp) + + + def get_context(self, obj): + config = OpenAIConfig.objects.filter(is_active=True, global_config=True).first() + if not config: + return [] + use_context = config.use_context + context_length = config.context_length + only_questions_in_context = config.only_questions_in_context + summarize_context = config.summarize_context + initial_context = config.initial_context + context = [{"role": "system", "content": initial_context},] + if use_context: + messages = Message.objects.filter(conversation=obj).order_by('-created_at')[:context_length] + for message in messages: + if only_questions_in_context and message.content: + context.append({"role": "user", "content": message.content}) + else: + if message.content: + context.append({"role": "user", "content": message.content}) + if message.response: + context.append({"role": "assistant", "content": message.response}) + if summarize_context: + summary = obj.summary + if summary: + context.append({"role": "system", "content": summary}) + return context + + def create(self, request): + if not request.session.session_key: + request.session.create() + session = request.session.session_key + user_id = request.user.id if request.user.is_authenticated else None + q = request.data.get('q') + + conv_obj, created = Conversation.objects.get_or_create(session=session) + if created: + conv_obj.summary = q + if user_id: + conv_obj.user_id = user_id + conv_obj.save() + + context = self.get_context(conv_obj) + + obj = Message.objects.create( + conversation=conv_obj, + role='user', + content=q, + ) + + client = OpenAI() + response = client.ask(q, context) + + # clean response + response = response.split('Summary')[0] + chat_summary = response.split('Summary')[-1].split('summary')[-1] + obj.response = response + conv_obj.summary = chat_summary + obj.save() + conv_obj.save() + + return Response({ + 'q': q, + 'bot': response + }) \ No newline at end of file diff --git a/modules/open-ai-chat/modules/open-ai-chat/index.js b/modules/open-ai-chat/modules/open-ai-chat/index.js index a1b0fcdf0..2d3e4f1cc 100644 --- a/modules/open-ai-chat/modules/open-ai-chat/index.js +++ b/modules/open-ai-chat/modules/open-ai-chat/index.js @@ -1,27 +1,174 @@ -import React, { useRef, useContext, useEffect, useState } from "react"; -import { - Text, - View, - TouchableOpacity, - FlatList, - ImageBackground -} from "react-native"; -import { OptionsContext, GlobalOptionsContext } from "@options"; +import React, { useRef, useEffect, useState } from "react"; +import { TextInput, Button, List, Avatar, Card } from "react-native-paper"; +import { View, ScrollView, StyleSheet, Dimensions } from "react-native"; +import { useDispatch } from "react-redux"; +import { getMessages, sendMessage } from "../../store/open-api/open-api.slice"; +const isMobileScreen = Dimensions.get("window").width <= 600; // Adjust the threshold as needed const FeatureName = () => { - // More info on all the options is below in the API Reference... just some common use cases shown here - const options = useContext(OptionsContext); - const gOptions = useContext(GlobalOptionsContext); + const [messages, setMessages] = useState([ - const { styles } = options; + ]); + const dispatch = useDispatch(); + useEffect(() => { + dispatch(getMessages()).then((res) => { + console.log(res); + setMessages(res.payload?.messages); + }); + }, []); + + const [newMessage, setNewMessage] = useState(""); + const scrollViewRef = useRef(null); + useEffect(() => { + // Auto-scroll to the bottom when messages change + console.log("scrolling to end"); + scrollViewRef.current.scrollToEnd({ animated: true }); + }, []); + const handleSend = () => { + if (newMessage.trim() !== "") { + const userMessage = { + q: newMessage + }; + + const message = { + role: "user", + content: newMessage, + created_at: new Date().toISOString() + }; + + setMessages([...messages, message]); // Reverse the order + setNewMessage(""); + + dispatch(sendMessage(userMessage)).then((res) => { + const aiResponse = { + role: "AI", + content: res.payload?.bot, + created_at: new Date().toISOString() + }; + message.response = res.payload?.response; + setMessages([...messages, message, aiResponse]); + }); + } + }; + useEffect(() => { + // Auto-scroll to the bottom when messages change + console.log("scrollViewRef", scrollViewRef); + console.log("scrollViewRef.current", scrollViewRef.current); + scrollViewRef.current.scrollToEnd({ animated: true }); + }, [messages]); return ( - - open ai chat + + {/* Chat messages */} + { + console.log("scrolling to endccc"); + }} + showsHorizontalScrollIndicator={false} + showsVerticalScrollIndicator={false} + > + + Chat + {messages.map((message, index) => ( + + ( + + )} + style={styles.messageItem} + /> + + ))} + + + + {/* Input card for typing and sending messages */} + + + + setNewMessage(text)} + style={{ flex: 1 }} + onSubmitEditing={handleSend} + /> + + + + + + ); }; +const styles = StyleSheet.create({ + container: { + backgroundColor: "#444", + height: "100vh" + }, + messagesContainer: { + flex: 1, + paddingHorizontal: 16, + paddingBottom: 60, // Adjust as needed + width: isMobileScreen ? "95%" : "80%", + alignSelf: "center" + }, + messagesContentContainer: { + flexGrow: 1, + // justifyContent: 'flex-start', + justifyContent: "flex-end" + }, + messageItem: { + marginBottom: 16 + }, + avatar: { + backgroundColor: "blue" // Customize the avatar color + }, + messageTitle: { + fontWeight: "bold", + marginRight: 8 + }, + inputContainer: { + position: "sticky", + bottom: 0, + padding: 16, + width: "70%", + alignSelf: "center" + }, + card: { + padding: 0, + borderRadius: 16 + }, + buttonContainer: { + flexDirection: "row", + justifyContent: "flex-end", + marginLeft: 16 + }, + sendButton: { + width: 50, + height: 50, + borderRadius: 25, + justifyContent: "center", + alignItems: "center" + } +}); + export default { title: "FeatureName", navigator: FeatureName diff --git a/modules/open-ai-chat/modules/open-ai-chat/options.js b/modules/open-ai-chat/modules/open-ai-chat/options.js index f6beee363..19c067cac 100644 --- a/modules/open-ai-chat/modules/open-ai-chat/options.js +++ b/modules/open-ai-chat/modules/open-ai-chat/options.js @@ -8,7 +8,7 @@ const styles = StyleSheet.create({ alignItems: "flex-end", flexDirection: "row", justifyContent: "center" - }, + } }); export default { diff --git a/modules/open-ai-chat/store/open-api/api.js b/modules/open-ai-chat/store/open-api/api.js new file mode 100644 index 000000000..82426545d --- /dev/null +++ b/modules/open-ai-chat/store/open-api/api.js @@ -0,0 +1,37 @@ +import { getGlobalOptions } from "@options"; +import axios from "axios"; + +const global = getGlobalOptions(); +const BASE_URL = global.url; // change your BASE_URL in `options/options.js` to edit this value + +export const sendMessage = async payload => { +// const token = await AsyncStorage.getItem("accessToken"); + const config = { + method: "post", + maxBodyLength: Infinity, + url: `${BASE_URL}/modules/open-ai-chat/chat/`, + headers: { + // Authorization: `Token ${token}` + }, + data: payload + }; + return axios.request(config); +}; + +export const getMessages = async () => { +// const token = await AsyncStorage.getItem("accessToken"); + const config = { + method: "get", + maxBodyLength: Infinity, + url: `${BASE_URL}/modules/open-ai-chat/chat/`, + headers: { + // Authorization: `Token ${token}` + } + }; + return axios.request(config); +}; + +export const api = { + getMessages, + sendMessage +}; diff --git a/modules/open-ai-chat/store/open-api/open-api.slice.js b/modules/open-ai-chat/store/open-api/open-api.slice.js new file mode 100644 index 000000000..c3bcf8d1b --- /dev/null +++ b/modules/open-ai-chat/store/open-api/open-api.slice.js @@ -0,0 +1,96 @@ +import { Alert } from "react-native"; +import { createSlice, createAsyncThunk } from "@reduxjs/toolkit"; +import { api } from "./api"; + +export const getMessages = createAsyncThunk("home/getMessages", async () => { + try { + const response = await api.getMessages(); + return response.data; + } catch (error) { + throw new Error(); + } +}); + +export const sendMessage = createAsyncThunk( + "home/sendMessage", + async payload => { + try { + const response = await api.sendMessage(payload); + console.log("response, Success", response); + Alert.alert("Success", response?.data?.message); + return response.data; + } catch (error) { + if (error.message === "Network Error") { + Alert.alert("Failed", "Please check your internet connection"); + } + throw new Error(); + } + } +); + +const initialState = { + getMessages: { + entities: { + data: [] + }, + api: { + loading: "idle", + error: null + } + }, + sendMessage: { + entities: [], + api: { + loading: "idle", + error: null + } + } +}; +const openAPIChatSlice = createSlice({ + name: "openAPIchat", + initialState: initialState, + reducers: {}, + extraReducers: { + [getMessages.pending]: state => { + if (state.getMessages.api.loading === "idle") { + state.getMessages.api.loading = "pending"; + state.getMessages.api.error = null; + } + }, + [getMessages.fulfilled]: (state, action) => { + if (state.getMessages.api.loading === "pending") { + state.getMessages.entities.data = action.payload; + state.getMessages.api.loading = "idle"; + } + }, + [getMessages.rejected]: (state, action) => { + if (state.getMessages.api.loading === "pending") { + state.getMessages.api.error = action.error; + state.getMessages.api.loading = "idle"; + } + }, + + [sendMessage.pending]: state => { + if (state.sendMessage.api.loading === "idle") { + state.sendMessage.api.loading = "pending"; + state.sendMessage.api.error = null; + } + }, + [sendMessage.fulfilled]: (state, action) => { + if (state.sendMessage.api.loading === "pending") { + state.sendMessage.entities = action.payload.value; + state.sendMessage.api.loading = "idle"; + } + }, + [sendMessage.rejected]: (state, action) => { + if (state.sendMessage.api.loading === "pending") { + state.sendMessage.api.error = action.error; + state.sendMessage.api.loading = "idle"; + } + } + } +}); + +export default { + slice: openAPIChatSlice +};