Giter VIP home page Giter VIP logo

doppio_bot's Introduction

Hi there ๐Ÿ‘‹

I am Hussain Nagaria. Host of #BuildWithHussain and Product Evangelist at Frappe.

Doppio Template Series

  • Doppio CLI: A Frappe app based CLI to magically setup Vue or React SPAs in your custom Frappe Apps
  • Doppio Bot: AI ChatBot Template, built into Frappe's admin/desk Interface
  • Doppio FrappeUI Starter: A Vite + Vue 3 + TailwindCSS + Frappe UI starter template for building frontends for Frappe Apps
  • Doppio Mobile: React Native + Expo + Frappe Framework Starter Template for building Mobile Apps backed by Frappe

doppio_bot's People

Contributors

nagariahussain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

doppio_bot's Issues

Error loading assets

When we open page, showing below error :

request.js:298 TypeError: frappe.assets.handler[frappe.assets.extn(...)] is not a function
at Object.eval_assets (assets.js:96:50)
at assets.js:83:19
at Object.callback (assets.js:134:5)
at Object.callback [as success_callback] (request.js:85:16)
at 200 (request.js:128:34)
at Object. (request.js:294:6)

Request

Add more examples or more information to use Agent with Custom Tool

Error on frappecloud installation

The error that shows up, the moment I send a simple message to the client. The installation is done on frappe cloud

`### App Versions

{
	"chat": "0.0.1",
	"doppio_bot": "0.0.1",
	"erpnext": "14.22.3",
	"frappe": "14.33.1",
	"helpdesk": "0.8.1",
	"hrms": "14.2.2",
	"payments": "0.0.1",
	"sales_commission": "0.0.1",
	"surplus_asset_management": "0.0.1"
}

Route

doppio-bot

Traceback

Traceback (most recent call last):
  File "env/lib/python3.10/site-packages/redis/connection.py", line 559, in connect
    sock = self._connect()
  File "env/lib/python3.10/site-packages/redis/connection.py", line 615, in _connect
    raise err
  File "env/lib/python3.10/site-packages/redis/connection.py", line 603, in _connect
    sock.connect(socket_address)
OSError: [Errno 99] Cannot assign requested address

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "apps/frappe/frappe/app.py", line 66, in application
    response = frappe.api.handle()
  File "apps/frappe/frappe/api.py", line 54, in handle
    return frappe.handler.handle()
  File "apps/frappe/frappe/handler.py", line 45, in handle
    data = execute_cmd(cmd)
  File "apps/frappe/frappe/handler.py", line 83, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
  File "apps/frappe/frappe/__init__.py", line 1607, in call
    return fn(*args, **newargs)
  File "apps/doppio_bot/doppio_bot/api.py", line 43, in get_chatbot_response
    return conversation_chain.run(prompt_message)
  File "env/lib/python3.10/site-packages/langchain/chains/base.py", line 213, in run
    return self(args[0])[self.output_keys[0]]
  File "env/lib/python3.10/site-packages/langchain/chains/base.py", line 106, in __call__
    inputs = self.prep_inputs(inputs)
  File "env/lib/python3.10/site-packages/langchain/chains/base.py", line 193, in prep_inputs
    external_context = self.memory.load_memory_variables(inputs)
  File "env/lib/python3.10/site-packages/langchain/memory/buffer.py", line 39, in load_memory_variables
    return {self.memory_key: self.buffer}
  File "env/lib/python3.10/site-packages/langchain/memory/buffer.py", line 24, in buffer
    self.chat_memory.messages,
  File "env/lib/python3.10/site-packages/langchain/memory/chat_message_histories/redis.py", line 50, in messages
    _items = self.redis_client.lrange(self.key, 0, -1)
  File "env/lib/python3.10/site-packages/redis/client.py", line 1975, in lrange
    return self.execute_command('LRANGE', name, start, end)
  File "env/lib/python3.10/site-packages/redis/client.py", line 898, in execute_command
    conn = self.connection or pool.get_connection(command_name, **options)
  File "env/lib/python3.10/site-packages/redis/connection.py", line 1192, in get_connection
    connection.connect()
  File "env/lib/python3.10/site-packages/redis/connection.py", line 563, in connect
    raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error 99 connecting to localhost:6379. Cannot assign requested address.

Request Data

{
	"type": "POST",
	"args": {
		"prompt_message": "Can you tell me your name",
		"session_id": "38vGQU8_UO9mqNKbOyD9L"
	},
	"headers": {},
	"error_handlers": {},
	"url": "/api/method/doppio_bot.api.get_chatbot_response"
}

Response Data

{
	"exception": "redis.exceptions.ConnectionError: Error 99 connecting to localhost:6379. Cannot assign requested address."
}

Current Quota Exceeded Error

I Get:
openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details.

Details of the error:

App Versions

{
	"chat": "0.0.1",
	"doppio_bot": "0.0.1",
	"erpnext": "14.26.0",
	"frappe": "14.37.0",
	"helpdesk": "0.8.4",
	"hrms": "14.4.0",
	"payments": "0.0.1"
}

Route

doppio-bot

Traceback

Traceback (most recent call last):
  File "apps/frappe/frappe/app.py", line 66, in application
    response = frappe.api.handle()
  File "apps/frappe/frappe/api.py", line 54, in handle
    return frappe.handler.handle()
  File "apps/frappe/frappe/handler.py", line 45, in handle
    data = execute_cmd(cmd)
  File "apps/frappe/frappe/handler.py", line 83, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
  File "apps/frappe/frappe/__init__.py", line 1607, in call
    return fn(*args, **newargs)
  File "apps/doppio_bot/doppio_bot/api.py", line 48, in get_chatbot_response
    response = conversation_chain.run(prompt_message)
  File "env/lib/python3.10/site-packages/langchain/chains/base.py", line 213, in run
    return self(args[0])[self.output_keys[0]]
  File "env/lib/python3.10/site-packages/langchain/chains/base.py", line 116, in __call__
    raise e
  File "env/lib/python3.10/site-packages/langchain/chains/base.py", line 113, in __call__
    outputs = self._call(inputs)
  File "env/lib/python3.10/site-packages/langchain/chains/llm.py", line 57, in _call
    return self.apply([inputs])[0]
  File "env/lib/python3.10/site-packages/langchain/chains/llm.py", line 118, in apply
    response = self.generate(input_list)
  File "env/lib/python3.10/site-packages/langchain/chains/llm.py", line 62, in generate
    return self.llm.generate_prompt(prompts, stop)
  File "env/lib/python3.10/site-packages/langchain/llms/base.py", line 107, in generate_prompt
    return self.generate(prompt_strings, stop=stop)
  File "env/lib/python3.10/site-packages/langchain/llms/base.py", line 140, in generate
    raise e
  File "env/lib/python3.10/site-packages/langchain/llms/base.py", line 137, in generate
    output = self._generate(prompts, stop=stop)
  File "env/lib/python3.10/site-packages/langchain/llms/openai.py", line 672, in _generate
    full_response = completion_with_retry(self, messages=messages, **params)
  File "env/lib/python3.10/site-packages/langchain/llms/openai.py", line 99, in completion_with_retry
    return _completion_with_retry(**kwargs)
  File "env/lib/python3.10/site-packages/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)
  File "env/lib/python3.10/site-packages/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)
  File "env/lib/python3.10/site-packages/tenacity/__init__.py", line 325, in iter
    raise retry_exc.reraise()
  File "env/lib/python3.10/site-packages/tenacity/__init__.py", line 158, in reraise
    raise self.last_attempt.result()
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 451, in result
    return self.__get_result()
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
    raise self._exception
  File "env/lib/python3.10/site-packages/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)
  File "env/lib/python3.10/site-packages/langchain/llms/openai.py", line 97, in _completion_with_retry
    return llm.client.create(**kwargs)
  File "env/lib/python3.10/site-packages/openai/api_resources/chat_completion.py", line 25, in create
    return super().create(*args, **kwargs)
  File "env/lib/python3.10/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 153, in create
    response, _, api_key = requestor.request(
  File "env/lib/python3.10/site-packages/openai/api_requestor.py", line 226, in request
    resp, got_stream = self._interpret_response(result, stream)
  File "env/lib/python3.10/site-packages/openai/api_requestor.py", line 620, in _interpret_response
    self._interpret_response_line(
  File "env/lib/python3.10/site-packages/openai/api_requestor.py", line 683, in _interpret_response_line
    raise self.handle_error_response(
openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details.

Request Data

{
	"type": "POST",
	"args": {
		"prompt_message": "can you read my data",
		"session_id": "IoayygO4-xhLIAvB8AE2Z"
	},
	"headers": {},
	"error_handlers": {},
	"url": "/api/method/doppio_bot.api.get_chatbot_response"
}

Response Data

{
	"exception": "openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details."
}

It does show limits on the OpenAI Dashboard through
image

Error: doppio_bot.api.get_chatbot_response with 'not' is not a valid parameter name

request.js:457
Traceback (most recent call last):
File "apps/frappe/frappe/handler.py", line 74, in execute_cmd
method = get_attr(cmd)
^^^^^^^^^^^^^
File "apps/frappe/frappe/handler.py", line 260, in get_attr
method = frappe.get_attr(cmd)
^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/init.py", line 1609, in get_attr
return getattr(get_module(modulename), methodname)
^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/init.py", line 1339, in get_module
return importlib.import_module(modulename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1204, in _gcd_import
File "", line 1176, in _find_and_load
File "", line 1147, in _find_and_load_unlocked
File "", line 690, in _load_unlocked
File "", line 940, in exec_module
File "", line 241, in _call_with_frames_removed
File "apps/doppio_bot/doppio_bot/api.py", line 3, in
from langchain.llms import OpenAI
File "env/lib/python3.11/site-packages/langchain/init.py", line 6, in
from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain
File "env/lib/python3.11/site-packages/langchain/agents/init.py", line 2, in
from langchain.agents.agent import (
File "env/lib/python3.11/site-packages/langchain/agents/agent.py", line 15, in
from langchain.agents.tools import InvalidTool
File "env/lib/python3.11/site-packages/langchain/agents/tools.py", line 5, in
from langchain.tools.base import BaseTool
File "env/lib/python3.11/site-packages/langchain/tools/init.py", line 5, in
from langchain.tools.openapi.utils.api_models import APIOperation
File "env/lib/python3.11/site-packages/langchain/tools/openapi/utils/api_models.py", line 6, in
from openapi_schema_pydantic import MediaType, Parameter, Reference, RequestBody, Schema
File "env/lib/python3.11/site-packages/openapi_schema_pydantic/init.py", line 3, in
from .v3 import *
File "env/lib/python3.11/site-packages/openapi_schema_pydantic/v3/init.py", line 1, in
from .v3_1_0 import *
File "env/lib/python3.11/site-packages/openapi_schema_pydantic/v3/v3_1_0/init.py", line 9, in
from .open_api import OpenAPI
File "env/lib/python3.11/site-packages/openapi_schema_pydantic/v3/v3_1_0/open_api.py", line 5, in
from .components import Components
File "env/lib/python3.11/site-packages/openapi_schema_pydantic/v3/v3_1_0/components.py", line 7, in
from .header import Header
File "env/lib/python3.11/site-packages/openapi_schema_pydantic/v3/v3_1_0/header.py", line 3, in
from .parameter import Parameter
File "env/lib/python3.11/site-packages/openapi_schema_pydantic/v3/v3_1_0/parameter.py", line 6, in
from .media_type import MediaType
File "env/lib/python3.11/site-packages/openapi_schema_pydantic/v3/v3_1_0/media_type.py", line 8, in
from .schema import Schema
File "env/lib/python3.11/site-packages/openapi_schema_pydantic/v3/v3_1_0/schema.py", line 10, in
class Schema(BaseModel):
File "env/lib/python3.11/site-packages/pydantic/main.py", line 369, in new
cls.signature = ClassAttribute('signature', generate_model_signature(cls.init, fields, config))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "env/lib/python3.11/site-packages/pydantic/utils.py", line 231, in generate_model_signature
merged_params[param_name] = Parameter(
^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/inspect.py", line 2725, in init
raise ValueError('{!r} is not a valid parameter name'.format(name))
ValueError: 'not' is not a valid parameter name

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "apps/frappe/frappe/app.py", line 94, in application
response = frappe.api.handle()
^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/api.py", line 54, in handle
return frappe.handler.handle()
^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/handler.py", line 47, in handle
data = execute_cmd(cmd)
^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/handler.py", line 76, in execute_cmd
frappe.throw(_("Failed to get method for command {0} with {1}").format(cmd, e))
File "apps/frappe/frappe/init.py", line 533, in throw
msgprint(
File "apps/frappe/frappe/init.py", line 501, in msgprint
_raise_exception()
File "apps/frappe/frappe/init.py", line 450, in _raise_exception
raise raise_exception(msg)
frappe.exceptions.ValidationError: Failed to get method for command doppio_bot.api.get_chatbot_response with 'not' is not a valid parameter name

Error installing

Hello I have his error installing doppio_bot, not sure what could be:

(env) root@crediemprende:/home/frappe/frappe-bench# sudo bench get-app NagariaHussain/doppio_bot
Getting doppio_bot
$ git clone https://github.com/NagariaHussain/doppio_bot.git --depth 1 --origin upstream
Cloning into 'doppio_bot'...
remote: Enumerating objects: 39, done.
remote: Counting objects: 100% (39/39), done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 39 (delta 0), reused 22 (delta 0), pack-reused 0
Unpacking objects: 100% (39/39), 44.20 KiB | 520.00 KiB/s, done.
Ignoring dependencies of NagariaHussain/doppio_bot. To install dependencies use --resolve-deps
Installing doppio_bot
$ /home/frappe/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/frappe/frappe-bench/apps/doppio_bot
$ yarn install
yarn install v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning " > [email protected]" has unmet peer dependency "@types/react@>=16".
[4/4] Building fresh packages...
Done in 6.32s.
$ bench build --app doppio_bot
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 109, in
main()
File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
click.Group(commands=commands)(prog_name="bench")
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 829, in call
return self.main(*args, **kwargs)
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/utils.py", line 61, in build
frappe.init("")
File "/home/frappe/frappe-bench/apps/frappe/frappe/init.py", line 248, in init
setup_module_map()
File "/home/frappe/frappe-bench/apps/frappe/frappe/init.py", line 1538, in setup_module_map
for module in get_module_list(app):
File "/home/frappe/frappe-bench/apps/frappe/frappe/init.py", line 1378, in get_module_list
return get_file_items(os.path.join(os.path.dirname(get_module(app_name).file), "modules.txt"))
File "/usr/lib/python3.10/posixpath.py", line 152, in dirname
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType
ERROR:
subprocess.CalledProcessError: Command 'bench build --app doppio_bot' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/bin/bench", line 8, in
sys.exit(cli())
File "/usr/local/lib/python3.10/dist-packages/bench/cli.py", line 127, in cli
bench_command()
File "/usr/lib/python3/dist-packages/click/core.py", line 764, in call
return self.main(*args, **kwargs)
File "/usr/lib/python3/dist-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/lib/python3/dist-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/lib/python3/dist-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/bench/commands/make.py", line 159, in get_app
get_app(
File "/usr/local/lib/python3.10/dist-packages/bench/app.py", line 444, in get_app
app.install(verbose=verbose, skip_assets=skip_assets, restart_bench=restart_bench)
File "/usr/local/lib/python3.10/dist-packages/bench/utils/render.py", line 126, in wrapper_fn
return fn(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/bench/app.py", line 242, in install
install_app(
File "/usr/local/lib/python3.10/dist-packages/bench/app.py", line 586, in install_app
build_assets(bench_path=bench_path, app=app)
File "/usr/local/lib/python3.10/dist-packages/bench/utils/bench.py", line 351, in build_assets
exec_cmd(command, cwd=bench_path, env={"BENCH_DEVELOPER": "1"})
File "/usr/local/lib/python3.10/dist-packages/bench/utils/init.py", line 158, in exec_cmd
raise CommandFailedError from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.