Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

latest change from commit f90da39 to 30e9828 #486

Open
darrassi1 opened this issue Apr 25, 2024 · 13 comments
Open

latest change from commit f90da39 to 30e9828 #486

darrassi1 opened this issue Apr 25, 2024 · 13 comments

Comments

@darrassi1
Copy link
Contributor

$ python devika.py
Traceback (most recent call last):
File "C:\Users\pc\Desktop\stream_main\devika\devika.py", line 8, in
init_devika()
File "C:\Users\pc\Desktop\stream_main\devika\src\init.py", line 7, in init_devika
logger = Logger()
^^^^^^^^
File "C:\Users\pc\Desktop\stream_main\devika\src\logger.py", line 11, in init
config = Config()
^^^^^^^^
File "C:\Users\pc\Desktop\stream_main\devika\src\config.py", line 11, in new
cls._instance._load_config()
File "C:\Users\pc\Desktop\stream_main\devika\src\config.py", line 38, in _load_config
self.config = config
^^^^^^
UnboundLocalError: cannot access local variable 'config' where it is not associated with a value

@ARajgor
Copy link
Collaborator

ARajgor commented Apr 25, 2024

can you fetch the latest changes and try it again?

@darrassi1
Copy link
Contributor Author

and i did not like this in llm.py
with concurrent.futures.ThreadPoolExecutor() as executor: future = executor.submit(model.inference, self.model_id, prompt)

because its consuming tokens Alot

@darrassi1
Copy link
Contributor Author

can you fetch the latest changes and try it again?

yes i did , in fact i started all over because of merge conflict with others pending PR

@ARajgor
Copy link
Collaborator

ARajgor commented Apr 25, 2024

I just pushed the patch for config. and for ThreadPoolExecutor is for calculating time taking by model nothing to do with token usage.

@darrassi1
Copy link
Contributor Author

I just pushed the patch for config. and for ThreadPoolExecutor is for calculating time taking by model nothing to do with token usage.

i got from new commit 1c8450b ->> this new bug
`$ python devika.py
24.04.25 13:01:47: root: INFO : Initializing Devika...
24.04.25 13:01:47: root: INFO : checking configurations...
24.04.25 13:01:47: root: INFO : Initializing Prerequisites Jobs...
24.04.25 13:02:23: root: INFO : Loading sentence-transformer BERT models...
24.04.25 13:02:34: root: INFO : BERT model loaded successfully.
24.04.25 13:02:46: root: INFO : Ollama available
24.04.25 13:02:55: root: INFO : Devika is up and running!
24.04.25 13:03:07: root: INFO : /api/data GET
24.04.25 13:03:07: root: DEBUG : /api/data GET - Response: {"models":{"CLAUDE":[["Claude 3 Opus","claude-3-opus-20240229"],["Claude 3 Sonnet","claude-3-sonnet-20240229"],["Claude 3 Haiku","claude-3-haiku-20240307"]],"GOOGLE":[["Gemini 1.0 Pro","gemini-pro"]],"GROQ":[["LLAMA3 8B","llama3-8b-8192"],["LLAMA3 70B","llama3-70b-8192"],["LLAMA2 70B","llama2-70b-4096"],["Mixtral","mixtral-8x7b-32768"],["GEMMA 7B","gemma-7b-it"]],"MISTRAL":[["Mistral 7b","open-mistral-7b"],["Mistral 8x7b","open-mixtral-8x7b"],["Mistral Medium","mistral-medium-latest"],["Mistral Small","mistral-small-latest"],["Mistral Large","mistral-large-latest"]],"OLLAMA":[],"OPENAI":[["GPT-4 Turbo","gpt-4-turbo"],["GPT-3.5 Turbo","gpt-3.5-turbo-0125"]]},"projects":[],"search_engines":["Bing","Google","DuckDuckGo"]}

Socket connected :: {'data': 'frontend connected!'}
24.04.25 13:03:07: root: INFO : SOCKET socket_response MESSAGE: {'data': 'Server Connected'}
24.04.25 13:03:17: root: INFO : /api/data GET
24.04.25 13:03:17: root: DEBUG : /api/data GET - Response: {"models":{"CLAUDE":[["Claude 3 Opus","claude-3-opus-20240229"],["Claude 3 Sonnet","claude-3-sonnet-20240229"],["Claude 3 Haiku","claude-3-haiku-20240307"]],"GOOGLE":[["Gemini 1.0 Pro","gemini-pro"]],"GROQ":[["LLAMA3 8B","llama3-8b-8192"],["LLAMA3 70B","llama3-70b-8192"],["LLAMA2 70B","llama2-70b-4096"],["Mixtral","mixtral-8x7b-32768"],["GEMMA 7B","gemma-7b-it"]],"MISTRAL":[["Mistral 7b","open-mistral-7b"],["Mistral 8x7b","open-mixtral-8x7b"],["Mistral Medium","mistral-medium-latest"],["Mistral Small","mistral-small-latest"],["Mistral Large","mistral-large-latest"]],"OLLAMA":[],"OPENAI":[["GPT-4 Turbo","gpt-4-turbo"],["GPT-3.5 Turbo","gpt-3.5-turbo-0125"]]},"projects":[],"search_engines":["Bing","Google","DuckDuckGo"]}

Socket connected :: {'data': 'frontend connected!'}
24.04.25 13:03:17: root: INFO : SOCKET socket_response MESSAGE: {'data': 'Server Connected'}
24.04.25 13:03:25: root: INFO : /api/create-project POST
24.04.25 13:03:25: root: DEBUG : /api/create-project POST - Response: {"message":"Project created"}

24.04.25 13:04:02: root: INFO : User message: {'message': 'create a python game of snake ', 'base_model': 'gemini-pro', 'project_name': 'test', 'search_engine': 'DuckDuckGo'}
24.04.25 13:04:02: root: INFO : SOCKET server-message MESSAGE: {'messages': {'from_devika': False, 'message': 'create a python game of snake ', 'timestamp': '2024-04-25 13:04:02'}}
24.04.25 13:04:02: root: INFO : SOCKET agent-state MESSAGE: [{'internal_monologue': "I'm starting the work...", 'browser_session': {'url': None, 'screenshot': None}, 'terminal_session': {'command': None, 'output': None, 'title': None}, 'step': 1, 'message': None, 'completed': False, 'agent_is_active': True, 'token_usage': 0, 'timestamp': '2024-04-25 13:04:02'}]
24.04.25 13:04:02: root: INFO : SOCKET tokens MESSAGE: {'token_usage': 736}
Model: gemini-pro, Enum: None
Exception in thread Thread-3 ():
Traceback (most recent call last):
File "C:\Users\pc\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 1038, in _bootstrap_inner
self.run()
File "C:\Users\pc\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\pc\Desktop\stream_main\devika\devika.py", line 85, in
thread = Thread(target=lambda: agent.execute(message, project_name))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\pc\Desktop\stream_main\devika\src\agents\agent.py", line 279, in execute
plan = self.planner.execute(prompt, project_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\pc\Desktop\stream_main\devika\src\agents\planner\planner.py", line 70, in execute
response = self.llm.inference(prompt, project_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\pc\Desktop\stream_main\devika\src\llm\llm.py", line 88, in inference
raise ValueError(f"Model {self.model_id} not supported")
ValueError: Model gemini-pro not supported
`

@darrassi1
Copy link
Contributor Author

@ARajgor can you create new branche dev

am working on RAG things

@ARajgor
Copy link
Collaborator

ARajgor commented Apr 25, 2024

check the message from the browser console?

@darrassi1
Copy link
Contributor Author

{data: 'Server Connected'}
{message: 'create snake game in python', base_model: 'gemini-pro', project_name: 'test3', search_engine: 'DuckDuckGo'}
{messages: {…}}
messages
: 
{from_devika: false, message: 'create snake game in python', timestamp: '2024-04-25 13:13:13'}
[[Prototype]]
: 
Object

and i got this in terminal

Exception in thread Thread-5 (<lambda>):
Traceback (most recent call last):
  File "C:\Users\pc\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "C:\Users\pc\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\pc\Desktop\stream_main\devika\devika.py", line 85, in <lambda>
    thread = Thread(target=lambda: agent.execute(message, project_name))
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pc\Desktop\stream_main\devika\src\agents\agent.py", line 279, in execute
    plan = self.planner.execute(prompt, project_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pc\Desktop\stream_main\devika\src\agents\planner\planner.py", line 70, in execute
    response = self.llm.inference(prompt, project_name)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pc\Desktop\stream_main\devika\src\llm\llm.py", line 88, in inference
    raise ValueError(f"Model {self.model_id} not supported")
ValueError: Model gemini-pro not supported

```                          and i cannot type in text area  even if i created new projet                                                     just revert all commit and make PR for small commit to be tested 

@ARajgor
Copy link
Collaborator

ARajgor commented Apr 25, 2024

Ohh I understand the problem. clear the local storage from browser

@darrassi1
Copy link
Contributor Author

unfortunately i can't

@ARajgor
Copy link
Collaborator

ARajgor commented Apr 25, 2024

image
remove this selectedModel

@darrassi1
Copy link
Contributor Author

gemini work but , the logic you defined making it slow

Socket connected ::  {'data': 'frontend connected!'}
24.04.25 13:48:43: root: INFO   : SOCKET socket_response MESSAGE: {'data': 'Server Connected'}
24.04.25 13:48:57: root: INFO   : User message: {'message': 'create login page in html css js\n', 'base_model': 'Gemini 1.0 Pro', 'project_name': 'xs', 'search_engine': 'DuckDuckGo'}
24.04.25 13:48:57: root: INFO   : SOCKET server-message MESSAGE: {'messages': {'from_devika': False, 'message': 'create login page in html css js\n', 'timestamp': '2024-04-25 13:48:57'}}
24.04.25 13:48:57: root: INFO   : SOCKET agent-state MESSAGE: [{'internal_monologue': "I'm starting the work...", 'browser_session': {'url': None, 'screenshot': None}, 'terminal_session': {'command': None, 'output': None, 'title': None}, 'step': 1, 'message': None, 'completed': False, 'agent_is_active': True, 'token_usage': 0, 'timestamp': '2024-04-25 13:48:57'}]
24.04.25 13:48:57: root: INFO   : SOCKET tokens MESSAGE: {'token_usage': 738}
Model: Gemini 1.0 Pro, Enum: GOOGLE
24.04.25 13:48:57: root: INFO   : SOCKET inference MESSAGE: {'type': 'time', 'elapsed_time': '0.19'}
24.04.25 13:49:03: root: INFO   : SOCKET tokens MESSAGE: {'token_usage': 955}

plan ::  Project Name: Login Page Creation

Your Reply to the Human Prompter: I will create a step-by-step plan to help build a login page in HTML, CSS, and JavaScript.

Current Focus: Structuring the login page components and styling.

Plan:
- [ ] Step 1: Create an HTML file and add basic structure, including a form for user credentials.
- [ ] Step 2: Implement CSS to style the page, enhance visual appeal, and arrange elements effectively.
- [ ] Step 3: Use JavaScript to add functionality like input validation, error handling, and form submission.
- [ ] Step 4: Add necessary HTML tags and attributes to support user interaction, such as input fields, buttons, and labels.
- [ ] Step 5: Include appropriate CSS classes and styles to control the appearance and layout of form elements.
- [ ] Step 6: Write JavaScript functions to handle user input, perform validation checks, and submit form data.
- [ ] Step 7: Test the login page functionality by entering data and observing expected behavior.
- [ ] Step 8: Make necessary adjustments to HTML, CSS, or JavaScript based on testing results to improve usability and functionality.

Summary: This plan provides a structured approach to creating a login page using HTML, CSS, and JavaScript. By following these steps, one can create a user-friendly and interactive login interface. Key considerations include proper form validation, error handling, and responsive design.

24.04.25 13:49:03: root: INFO   : SOCKET server-message MESSAGE: {'messages': {'from_devika': True, 'message': 'I will create a step-by-step plan to help build a login page in HTML, CSS, and JavaScript.', 'timestamp': '2024-04-25 13:49:03'}}
24.04.25 13:49:03: root: INFO   : SOCKET server-message MESSAGE: {'messages': {'from_devika': True, 'message': '{\n    "1": "Create an HTML file and add basic structure, including a form for user credentials.",\n    "2": "Implement CSS to style the page, enhance visual appeal, and arrange elements effectively.",\n    "3": "Use JavaScript to add functionality like input validation, error handling, and form submission.",\n    "4": "Add necessary HTML tags and attributes to support user interaction, such as input fields, buttons, and labels.",\n    "5": "Include appropriate CSS classes and styles to control the appearance and layout of form elements.",\n    "6": "Write JavaScript functions to handle user input, perform validation checks, and submit form data.",\n    "7": "Test the login page functionality by entering data and observing expected behavior.",\n    "8": "Make necessary adjustments to HTML, CSS, or JavaScript based on testing results to improve usability and functionality. "\n}', 'timestamp': '2024-04-25 13:49:03'}}

context_keywords ::  ['styling', 'login', 'components', 'page', 'structuring']

24.04.25 13:49:06: root: INFO   : SOCKET tokens MESSAGE: {'token_usage': 1496}
Model: Gemini 1.0 Pro, Enum: GOOGLE
24.04.25 13:49:06: root: INFO   : SOCKET inference MESSAGE: {'type': 'time', 'elapsed_time': '0.23'}
24.04.25 13:49:09: root: INFO   : SOCKET tokens MESSAGE: {'token_usage': 1135}

internal_monologue ::  Let's think about the most effective way to structure and style this login page...

24.04.25 13:49:09: root: INFO   : SOCKET agent-state MESSAGE: [{'internal_monologue': "I'm starting the work...", 'browser_session': {'url': None, 'screenshot': None}, 'terminal_session': {'command': None, 'output': None, 'title': None}, 'step': 1, 'message': None, 'completed': False, 'agent_is_active': True, 'token_usage': 1107, 'timestamp': '2024-04-25 13:48:57'}, {'internal_monologue': "Let's think about the most effective way to structure and style this login page...", 'browser_session': {'url': None, 'screenshot': None}, 'terminal_session': {'command': None, 'output': None, 'title': None}, 'step': 0, 'message': None, 'completed': False, 'agent_is_active': True, 'token_usage': 0, 'timestamp': '2024-04-25 13:49:09'}]
24.04.25 13:49:09: root: INFO   : SOCKET tokens MESSAGE: {'token_usage': 1750}
Model: Gemini 1.0 Pro, Enum: GOOGLE
24.04.25 13:49:09: root: INFO   : SOCKET inference MESSAGE: {'type': 'time', 'elapsed_time': '0.18'}
24.04.25 13:49:11: root: INFO   : SOCKET tokens MESSAGE: {'token_usage': 933}

research ::  {'queries': ['How to structure a login page in HTML'], 'ask_user': ''}

24.04.25 13:49:11: root: INFO   : SOCKET server-message MESSAGE: {'messages': {'from_devika': True, 'message': 'I am browsing the web to research the following queries: How to structure a login page in HTML.\n If I need anything, I will make sure to ask you.', 'timestamp': '2024-04-25 13:49:11'}}
24.04.25 13:49:11: root: INFO   : SOCKET agent-state MESSAGE: [{'internal_monologue': "I'm starting the work...", 'browser_session': {'url': None, 'screenshot': None}, 'terminal_session': {'command': None, 'output': None, 'title': None}, 'step': 1, 'message': None, 'completed': False, 'agent_is_active': True, 'token_usage': 1107, 'timestamp': '2024-04-25 13:48:57'}, {'internal_monologue': "Let's think about the most effective way to structure and style this login page...", 'browser_session': {'url': None, 'screenshot': None}, 'terminal_session': {'command': None, 'output': None, 'title': None}, 'step': 0, 'message': None, 'completed': False, 'agent_is_active': True, 'token_usage': 904, 'timestamp': '2024-04-25 13:49:09'}]
24.04.25 13:49:13: root: INFO   :
Search Engine :: duckduckgo

Link ::  https://www.w3schools.com/howto/howto_css_login_form.asp

TimeoutError: Page.goto: Timeout 20000ms exceeded.
Call log:
navigating to "https://www.w3schools.com/howto/howto_css_login_form.asp", waiting until "load"
 when trying to navigate to https://www.w3schools.com/howto/howto_css_login_form.asp
Exception in thread Thread-16 (<lambda>):
Traceback (most recent call last):
  File "C:\Users\pc\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "C:\Users\pc\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\pc\Desktop\stream_main\devika\devika.py", line 85, in <lambda>
    thread = Thread(target=lambda: agent.execute(message, project_name))
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pc\Desktop\stream_main\devika\src\agents\agent.py", line 344, in execute
    search_results = self.search_queries(queries, project_name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pc\Desktop\stream_main\devika\src\agents\agent.py", line 110, in search_queries
    browser, raw, data = loop.run_until_complete(self.open_page(project_name, link))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pc\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py", line 650, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Users\pc\Desktop\stream_main\devika\src\agents\agent.py", line 73, in open_page
    _, raw = await browser.screenshot(project_name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pc\Desktop\stream_main\devika\src\browser\browser.py", line 49, in screenshot
    await self.page.screenshot(path=path_to_save, full_page=True)
  File "C:\Users\pc\Desktop\stream_main\devika\.venv\Lib\site-packages\playwright\async_api\_generated.py", line 9309, in screenshot
    await self._impl_obj.screenshot(
  File "C:\Users\pc\Desktop\stream_main\devika\.venv\Lib\site-packages\playwright\_impl\_page.py", line 715, in screenshot
    encoded_binary = await self._channel.send("screenshot", params)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pc\Desktop\stream_main\devika\.venv\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send
    return await self._connection.wrap_api_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pc\Desktop\stream_main\devika\.venv\Lib\site-packages\playwright\_impl\_connection.py", line 513, in wrap_api_call
    raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
playwright._impl._errors.TimeoutError: Page.screenshot: Timeout 30000ms exceeded.
Call log:
taking page screenshot
  - waiting for fonts to load...
its stuck for good 

@darrassi1
Copy link
Contributor Author

i think complexity will consume more power , we need to invest time in new Goodie like RAG ,memory , webscraping ONLINE DOCS , optimising token usage , fixing readcode because when it come to big projet its imposible the feed the whole projet as prompt .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants