Skip to content

Commit

Permalink
beta release
Browse files Browse the repository at this point in the history
  • Loading branch information
neokd committed Nov 30, 2023
1 parent e1a484d commit f304896
Show file tree
Hide file tree
Showing 10 changed files with 96 additions and 99 deletions.
15 changes: 8 additions & 7 deletions docs/content/about/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,22 @@ This page lists the highlights, bug fixes and known issues for each release of N

## v0.1.0-beta 🕵️‍♂️🚀

__Release Date:__ 30th November 2023
__Release Date:__ 1st December 2023

Features:

- __Agent based chatbot 🤖__ : 2 New agents are added (ML Engineer, QA Engineer).
- __Agent based chatbot 🤖__ : Introducing two new agents: ML Engineer and QA Engineer. These specialized agents enhance NeoGPT's capabilities, providing expertise in machine learning and quality assurance. Use agents to solve problems, answer questions, and more.

- __Writing Assistant 📝__ : NeoGPT can now help you write your documents and assignments with `--write` flag.

- __Shell Mode 🐚__ : NeoGPT can now be used as a shell by passing the `--persona shell` flag.
- __Writing Assistant 📝__ : NeoGPT now supports a writing assistant feature. Use the `--write` flag to leverage NeoGPT in crafting documents and assignments, making writing tasks more efficient.

- __Docker Support 🐳__ : NeoGPT can now be run in a docker container.
- __Shell Mode 🐚__ : NeoGPT can now function as a shell. Activate shell mode by passing the `--persona shell` flag, allowing users to interact with NeoGPT in a shell environment.

- __Ollama Support 🧠__ : NeoGPT can now be used with Ollama.
- __Docker Support 🐳__ : NeoGPT is now dockerized, providing users with the flexibility to run NeoGPT within a Docker container for simplified deployment.

- __Timer for User Input in UI ⏱__ : Timed user input for ui mode by @savyez in [#105](https://github.com/neokd/NeoGPT/pull/105)
- __Ollama Support 🧠__ : NeoGPT seamlessly integrates with Ollama, expanding its compatibility and collaborative capabilities.

- __Timer for User Input in UI ⏱️__ : Timed user input for ui mode by @savyez in [#105](https://github.com/neokd/NeoGPT/pull/105)


Bug Fixes:
Expand Down
1 change: 0 additions & 1 deletion docs/content/agents/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,3 @@ Run the below command to see the agents in action.

7. __Collaborative Iteration__: Steps 3 to 5 are iteratively performed, facilitating collaboration until a satisfactory solution is achieved or attempts are exhausted.


5 changes: 0 additions & 5 deletions docs/content/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,6 @@ Join our [Discord](https://discord.gg/qNqjsGuCTG) community to stay up to date w
- [ ] Add other database support (MongoDB, ElasticSearch, etc.) 📁🔍


!!! info "Release Note"
Once the roadmap is complete by 75%, we will release the v0.1.0 of NeoGPT 🚀🤖✨

!!! warning "Note"
The roadmap is subject to change. We will update the roadmap as we progress.


## Contributing
Expand Down
63 changes: 63 additions & 0 deletions neogpt/agents/examples/password.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Import required libraries
import random
import string
from datetime import datetime

import streamlit as st

st.title("Strong Password Generator")
# Set default values for sliders
password_length = 12
num_digits = 3
num_uppercase = 2
num_lowercase = 2
num_symbols = 1

# Get user input from sliders
password_slider = st.slider("Password Length", 8, 20, password_length)
num_slider_digits = st.slider("Number of Digits", 0, 5, num_digits)
num_slider_uppercase = st.slider("Number of Uppercase Letters", 0, 5, num_uppercase)
num_slider_lowercase = st.slider("Number of Lowercase Letters", 0, 5, num_lowercase)
num_slider_symbols = st.slider("Number of Symbols", 0, 5, num_symbols)


def generate_password():
# Define character sets for each type of character
digits = string.digits
uppercase = string.ascii_uppercase
lowercase = string.ascii_lowercase
symbols = string.punctuation

# Calculate the number of characters to generate based on user input
num_digit = int(num_slider_digits)
num_uppercase = int(num_slider_uppercase)
num_lowercase = int(num_slider_lowercase)
num_symbols = int(num_slider_symbols)
total_length = (
password_slider - num_digit - num_uppercase - num_lowercase - num_symbols
)

# Generate the password using random characters from each set
password = (
"".join(random.choices(digits, k=num_digit))
+ "".join(random.choices(uppercase, k=num_uppercase))
+ "".join(random.choices(lowercase, k=num_lowercase))
+ "".join(random.choices(symbols, k=num_symbols))
)

# Convert the password to a list for shuffling
password_list = list(password)

# Shuffle the characters within each character set
random.shuffle(password_list)

# Convert the list back to a string
shuffled_password = "".join(password_list)

return shuffled_password


# Generate and display the password
if st.button("Generate Password"):
generated_password = generate_password()
st.write(f"Generated Password: {generated_password}")
23 changes: 16 additions & 7 deletions neogpt/agents/examples/password_generator.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
import streamlit as st
import secrets

import streamlit as st


def generate_password(length):
password = (secrets.token_hex(length) +
secrets.token_hex(length) +
secrets.token_hex(length)).replace('\n', '').strip()
password = (
(
secrets.token_hex(length)
+ secrets.token_hex(length)
+ secrets.token_hex(length)
)
.replace("\n", "")
.strip()
)
return password


if __name__ == "__main__":
st.title("Strong Password Generator")
st.write("Enter the desired password length:")

# Get the user input for password length
length_input = st.text_input(label="Enter length")

if length_input:
# Check if the input is not empty
length = int(length_input)

if length < 8:
st.write("Password length should be at least 8 characters.")
else:
Expand Down
2 changes: 1 addition & 1 deletion neogpt/agents/ml_engineer.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def __init__(self, llm) -> None:
def think(self, query):
global CURRENT_WORKING_AGENT, AGENT_THOUGHTS, QA_ENGINEER_FEEDBACK
CURRENT_WORKING_AGENT.append(str(self.role))
print(QA_ENGINEER_FEEDBACK)
# print(QA_ENGINEER_FEEDBACK)
template = (
"[INST]"
+ self.user_prefix
Expand Down
12 changes: 7 additions & 5 deletions neogpt/agents/qa_engineer.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import os
import re
import string

from colorama import Fore, Style
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
Expand Down Expand Up @@ -83,13 +84,14 @@ def analyse(self, query):
}
)

if (
("CORRECT" in validate["text"] or "TERMINATE" in validate["text"])
and ("CORRECT BUT NOT SOLVED" not in validate["text"].strip(string.punctuation) or "INCORRECT AND NOT SOLVED" not in validate["text"].strip(string.punctuation))
):
if ("CORRECT" in validate["text"] or "TERMINATE" in validate["text"]) and (
"CORRECT BUT NOT SOLVED" not in validate["text"].strip(string.punctuation)
or "INCORRECT AND NOT SOLVED"
not in validate["text"].strip(string.punctuation)
):
self.parse_code(self.agent_thoughts)
return True
else:
# print("INCORRECT")
# print("INCORRECT")
QA_ENGINEER_FEEDBACK.append(validate["text"])
return False
29 changes: 0 additions & 29 deletions neogpt/workspace/chatterbot.py

This file was deleted.

43 changes: 0 additions & 43 deletions neogpt/workspace/main.py

This file was deleted.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "neogpt"
version = "0.1.0-alpha"
version = "0.1.0-beta"
description = "NeoGPT: Chat effortlessly with Documents, YouTube Videos,Code, and Social Media Chats. Your go-to for quick and smart interactions! 🤖💬"
authors = ["Neokd"]
license = "MIT"
Expand Down

0 comments on commit f304896

Please sign in to comment.