Giter Site home page Giter Site logo

genia-dev / genia Goto Github PK

View Code? Open in Web Editor NEW
359.0 359.0 75.0 48.07 MB

Your Engineering Gen AI Team member 🧬🤖💻

Home Page: https://genia-dev.github.io/GeniA/

License: Apache License 2.0

Dockerfile 0.33% Shell 0.35% Python 99.11% Open Policy Agent 0.21%
agent ai aws azure chatgpt gcp gpt gpt-3 gpt-4 kubernetes llm openai python

genia's People

Contributors

cmpxchg16 avatar lestardw avatar liamcannon avatar shlomsh 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

genia's Issues

Integration with Microsoft Teams

### Describe the feature or problem you’d like to solve
With the increasing use of Microsoft Teams for communication and collaboration in many organizations, it would be beneficial for GeniA users to have a seamless integration with Teams. This would allow users to directly access GeniA features from within the Teams environment, thereby improving efficiency and user experience.

### Proposed solution

  1. Single Sign-On (SSO): Implement SSO between GeniA and Microsoft Teams to allow users to access GeniA without having to sign in separately.
  2. Bot Integration: Develop a GeniA bot for Teams that can interact with users, answer queries, and perform specific actions based on user commands.
  3. Tab Integration: Introduce a dedicated GeniA tab within Teams where users can view dashboards, reports, or any other relevant GeniA features without leaving the Teams interface.
  4. Notifications: Allow GeniA to send notifications to Teams channels or direct messages based on specific triggers or events.
  5. File Sharing and Collaboration: Enable users to share files from GeniA directly to Teams channels or chats and vice versa.

How will it benefit GeniA and its users?

  • Enhanced Productivity: Users can quickly access GeniA features without switching between applications.
  • Improved Collaboration: Teams users can collaborate on GeniA projects directly within Teams.
  • Increased Engagement: With GeniA available within Teams, users are more likely to engage and utilize its features more frequently.
  • Broadened User Base: Organizations that heavily rely on Microsoft Teams might be more inclined to adopt GeniA if there's a seamless integration.

### Additional context
I believe many organizations, including ours, rely heavily on Microsoft Teams for daily operations. An integration would greatly enhance our workflow and encourage more users to adopt GeniA.

Local install issue with Anaconda

I'm trying to run Genia on a local machine using anaconda and I'm getting issues.

I've created a new conda environment with python 3.11, run a pip3 install for genia and streamlit, then room streamlit run app.py as
the whole poet setup doesn't work for me.

I get the below error :

Traceback (most recent call last):
File "C:\Users\evanu\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 565, in _run_script
exec(code, module.dict)
File "genia/main.py", line 5, in
from genia.settings_loader import settings
File "C:\GenIA\GeniA\genia\settings_loader.py", line 3, in
from dynaconf import Dynaconf
ModuleNotFoundError: No module named 'dynaconf'

I've checked that Dynaconf is installed in the right place :

image

but I'm getting this error in streamlit

image

Microsoft Windows [Version 10.0.22621.2715] (c) Microsoft Corporation. All rights reserved. C:\Users\Asus\Desktop\genia\GeniA>genia Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases. C:\Users\Asus\Desktop\genia\GeniA>

Microsoft Windows [Version 10.0.22621.2715]
(c) Microsoft Corporation. All rights reserved.

C:\Users\Asus\Desktop\genia\GeniA>genia
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.

C:\Users\Asus\Desktop\genia\GeniA>

Self explanatory. Installed cloned etc all
and thats outcome

Add basic Azure AKS support

Describe the feature or problem you’d like to solve

teach genia how to use AKS apis as new tools

Proposed solution

have a look at the below directory implemented for local k8s and implement the matching functionality on AKS
genia/tools/kubernetes_client

Building & Running on Windows does not work.

Describe the bug

When attempting to run the GeniA docker container on Windows, I encountered an error indicating that entrypoint.sh cannot be found.

Steps to reproduce the behavior

  1. On a Windows machine, attempt to run the GeniA docker container.
  2. Observe the error indicating that entrypoint.sh cannot be found.

Expected vs actual behavior

Expected behavior: The docker container should run without any errors.
Actual behavior: Received an error indicating that entrypoint.sh cannot be found.

Logs

N/A

Additional context

As a workaround, I had to clone and build GeniA on WSL (Windows Subsystem for Linux). After doing this, the docker container worked fine on Windows Docker Desktop. I believe it has to do with line endings.

Keep getting erros when trying to run it, tried Streamline, Docker and Poetry, none worked (Windows)

Got this when trying Streamline:

"
(base) PS D:\AI\GeniA> conda activate genia
(genia) PS D:\AI\GeniA> genia
Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in run_code
File "C:\ProgramData\anaconda3\envs\genia\Scripts\genia.exe_main
.py", line 7, in
File "C:\ProgramData\anaconda3\envs\genia\Lib\site-packages\genia\entry.py", line 13, in streamlit
subprocess.run(["python3", "-m", "streamlit", "run", main])
File "C:\ProgramData\anaconda3\envs\genia\Lib\subprocess.py", line 548, in run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\ProgramData\anaconda3\envs\genia\Lib\subprocess.py", line 1026, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\ProgramData\anaconda3\envs\genia\Lib\subprocess.py", line 1538, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] The system cannot find the file specified
(genia) PS D:\AI\GeniA>
"

Got this when trying Docker:

"
(genia) PS D:\AI\GeniA>

docker run -p 5001:5001 --env-file ./.env -it geniadev/genia:latest
Traceback (most recent call last):
File "/app/main.py", line 7, in
from genia.agents.chat import OpenAIChat
File "/app/genia/agents/chat.py", line 29, in
class OpenAIChat(Agent):
File "/app/genia/agents/chat.py", line 43, in OpenAIChat
llm_functions_repository=LLMFunctionRepository(OpenAIEmbeddings(), FAISS),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/genia/llm_function/llm_function_repository.py", line 60, in init
self._init(functions_dict, tools_dict, skills_dict)
File "/app/genia/llm_function/llm_function_repository.py", line 130, in _init
self._init_vector_store(llm_functions_list)
File "/app/genia/llm_function/llm_function_repository.py", line 146, in _init_vector_store
self._vector_store = self._vector_store.from_texts(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/langchain/vectorstores/faiss.py", line 551, in from_texts
embeddings = embedding.embed_documents(texts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/langchain/embeddings/openai.py", line 452, in embed_documents
return self._get_len_safe_embeddings(texts, engine=self.deployment)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/langchain/embeddings/openai.py", line 302, in _get_len_safe_embeddings
response = embed_with_retry(
^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/langchain/embeddings/openai.py", line 97, in embed_with_retry
return _embed_with_retry(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/tenacity/init.py", line 289, in wrapped_f
return self(f, *args, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/tenacity/init.py", line 379, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/tenacity/init.py", line 314, in iter
return fut.result()
^^^^^^^^^^^^
File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/tenacity/init.py", line 382, in call
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/langchain/embeddings/openai.py", line 95, in _embed_with_retry
return embeddings.client.create(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/openai/api_resources/embedding.py", line 33, in create
response = super().create(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 153, in create
response, _, api_key = requestor.request(
^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/openai/api_requestor.py", line 298, in request
resp, got_stream = self._interpret_response(result, stream)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/openai/api_requestor.py", line 700, in _interpret_response
self._interpret_response_line(
File "/root/.cache/pypoetry/virtualenvs/genia-9TtSrW0h-py3.11/lib/python3.11/site-packages/openai/api_requestor.py", line 763, in _interpret_response_line
raise self.handle_error_response(
openai.error.InvalidRequestError: Invalid URL (POST /engines/text-embedding-ada-002/embeddings)
"


Got this when trying Poetry:

(yes I had the .env file containing the API key)
"
(base) PS D:\AI\GeniA> conda activate genia
(genia) PS D:\AI\GeniA> poetry run local
Warning: 'local' is an entry point defined in pyproject.toml, but it's not installed as a script. You may get improper sys.argv[0].

The support to run uninstalled scripts will be removed in a future release.

Run poetry install to resolve and get rid of this message.

Traceback (most recent call last):
File "", line 1, in
File "C:\ProgramData\anaconda3\envs\genia\Lib\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 "D:\AI\GeniA\genia\main.py", line 6, in
from genia.agents.chat import OpenAIChat
File "D:\AI\GeniA\genia\agents\chat.py", line 24, in
class OpenAIChat(OpenAIToolsEmpoweredAgent):
File "D:\AI\GeniA\genia\agents\chat.py", line 38, in OpenAIChat
OpenAIEmbeddings(
File "pydantic\main.py", line 341, in pydantic.main.BaseModel.init
pydantic.error_wrappers.ValidationError: 1 validation error for OpenAIEmbeddings
root
Did not find openai_api_key, please add an environment variable OPENAI_API_KEY which contains it, or pass openai_api_key as a named parameter. (type=value_error)
(genia) PS D:\AI\GeniA>
"

Add basic Kafka integration

Describe the feature or problem you’d like to solve

teach genia how to use Kafka basic apis as new tools

Add Grafana integration

Describe the feature or problem you’d like to solve

teach genia how to use the Grafane apis as new tools

Proposed solution

alerting api
metric history

Add basic AWS EKS support

Describe the feature or problem you’d like to solve

teach genia how to use EKS apis as new tools

Proposed solution

have a look at the below directory implemented for local k8s and implement the matching functionality on EKS
genia/tools/kubernetes_client

Add Azure Functions support

Describe the feature or problem you’d like to solve

teach genia how to use Azure Functions apis as new tools

Proposed solution

have a look at the below file implemented for aws lambda and implement the matching functionality on azure functions
genia/tools/kubernetes_client

create lambda
delete lambda
list available lambdas
invoke lambda
update lambda
etc.

Add basic GCP GKS support

Describe the feature or problem you’d like to solve

teach genia how to use GKS apis as new tools

Proposed solution

have a look at the below directory implemented for local k8s and implement the matching functionality on GKS
genia/tools/kubernetes_client

Add GCP Cloud Functions support

Describe the feature or problem you’d like to solve

teach genia how to use GCP Cloud Functions apis as new tools

Proposed solution

have a look at the below file implemented for aws lambda and implement the matching functionality on cloud functions
genia/tools/kubernetes_client

create lambda
delete lambda
list available lambdas
invoke lambda
update lambda
etc.

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.