diff --git a/gui/pages/Content/Agents/Details.js b/gui/pages/Content/Agents/Details.js index 4ac348f79..e5c34d1fa 100644 --- a/gui/pages/Content/Agents/Details.js +++ b/gui/pages/Content/Agents/Details.js @@ -164,7 +164,7 @@ export default function Details({agentDetails, runCount, goals, instructions, ag
book-icon
-
knowledge name
+
{agentDetails?.knowledge_name || 'Not Found' }
model-icon
@@ -174,10 +174,10 @@ export default function Details({agentDetails, runCount, goals, instructions, ag {/*
exit-icon
*/} {/*
{exit}
*/} {/*
*/} -
+ {/*
window-icon
{agentDetails?.memory_window || 0} milliseconds
-
+
*/}
permission-type-icon
{agentDetails?.permission_type.replace(/\s*\([^)]*\)/g, '') || ''}
diff --git a/superagi/controllers/agent.py b/superagi/controllers/agent.py index d7852dada..0d960f12c 100644 --- a/superagi/controllers/agent.py +++ b/superagi/controllers/agent.py @@ -30,6 +30,7 @@ import json from superagi.models.toolkit import Toolkit +from superagi.models.knowledges import Knowledges from sqlalchemy import func # from superagi.types.db import AgentOut, AgentIn @@ -480,13 +481,16 @@ def get_agent_configuration(agent_id: int, AgentExecution.agent_id == agent_id).scalar() total_tokens = db.session.query(func.sum(AgentExecution.num_of_tokens)).filter( AgentExecution.agent_id == agent_id).scalar() + # Construct the JSON response response = {result.key: result.value for result in results} + knowledge = db.session.query(Knowledges).filter(Knowledges.id == response['knowledge']).first() response = merge(response, {"name": agent.name, "description": agent.description, # Query the AgentConfiguration table for the speci "goal": eval(response["goal"]), "instruction": eval(response.get("instruction", '[]')), + "knowledge_name": knowledge.name, "calls": total_calls, "tokens": total_tokens, "constraints": eval(response.get("constraints")), diff --git a/superagi/controllers/knowledges.py b/superagi/controllers/knowledges.py index dbafbf6db..3afac761f 100644 --- a/superagi/controllers/knowledges.py +++ b/superagi/controllers/knowledges.py @@ -126,7 +126,7 @@ def install_selected_knowledge(knowledge_name: str, vector_db_index_id: int, org file_chunks = S3Helper().get_json_file(selected_knowledge_config["file_path"]) vector = Vectordbs.get_vector_db_from_id(db.session, vector_db_index.vector_db_id) db_creds = VectordbConfigs.get_vector_db_config_from_db_id(db.session, vector.id) - upsert_data = VectorEmbeddingFactory.build_vector_storge(vector.db_type).get_vector_embeddings_from_chunks(file_chunks) + upsert_data = VectorEmbeddingFactory.build_vector_storage(vector.db_type, file_chunks).get_vector_embeddings_from_chunks() try: vector_db_storage = VectorFactory.build_vector_storage(vector.db_type, vector_db_index.name, **db_creds) vector_db_storage.add_embeddings_to_vector_db(upsert_data) diff --git a/superagi/models/agent.py b/superagi/models/agent.py index 719410545..f979e2442 100644 --- a/superagi/models/agent.py +++ b/superagi/models/agent.py @@ -106,9 +106,9 @@ def eval_agent_config(cls, key, value): """ - if key in ["name", "description", "agent_type", "exit", "model", "permission_type", "LTM_DB", "resource_summary"]: + if key in ["name", "description", "agent_type", "exit", "model", "permission_type", "LTM_DB", "resource_summary", "knowledge"]: return value - elif key in ["project_id", "memory_window", "max_iterations", "iteration_interval", "knowledge"]: + elif key in ["project_id", "memory_window", "max_iterations", "iteration_interval"]: return int(value) elif key in ["goal", "constraints", "instruction", "is_deleted"]: return eval(value) diff --git a/superagi/vector_embeddings/vector_embedding_factory.py b/superagi/vector_embeddings/vector_embedding_factory.py index 68beab835..827edb79c 100644 --- a/superagi/vector_embeddings/vector_embedding_factory.py +++ b/superagi/vector_embeddings/vector_embedding_factory.py @@ -9,7 +9,7 @@ class VectorEmbeddingFactory: @classmethod - def build_vector_storge(cls, vector_store: VectorStoreType, chunk_json: Optional[dict] = None): + def build_vector_storage(cls, vector_store: VectorStoreType, chunk_json: Optional[dict] = None): """ Get the vector embeddings from final chunks. Args: @@ -18,14 +18,14 @@ def build_vector_storge(cls, vector_store: VectorStoreType, chunk_json: Optional The vector storage object """ final_chunks = [] + uuid = [] + embeds = [] + metadata = [] vector_store = VectorStoreType.get_vector_store_type(vector_store) if chunk_json is not None: for key in chunk_json.keys(): final_chunks.append(chunk_json[key]) - uuid = [] - embeds = [] - metadata = [] for i in range(0, len(final_chunks)): uuid.append(final_chunks[i]["id"]) embeds.append(final_chunks[i]["embeds"]) @@ -35,6 +35,7 @@ def build_vector_storge(cls, vector_store: VectorStoreType, chunk_json: Optional 'knowledge_name': final_chunks[i]['knowledge_name'] } metadata.append(data) + if vector_store == VectorStoreType.PINECONE: return Pinecone(uuid, embeds, metadata) diff --git a/tests/unit_tests/vector_embeddings/test_vector_embedding_factory.py b/tests/unit_tests/vector_embeddings/test_vector_embedding_factory.py index b381e208d..de447c9c6 100644 --- a/tests/unit_tests/vector_embeddings/test_vector_embedding_factory.py +++ b/tests/unit_tests/vector_embeddings/test_vector_embedding_factory.py @@ -12,13 +12,13 @@ def test_build_vector_storge(self, mock_qdrant, mock_pinecone): "2": {"id": 2, "embeds": [4,5,6], "text": "test2", "chunk": "chunk2", "knowledge_name": "knowledge2"}, } - vector_storge = VectorEmbeddingFactory.build_vector_storge('Pinecone', test_data) + vector_storge = VectorEmbeddingFactory.build_vector_storage('Pinecone', test_data) mock_pinecone.assert_called_once_with( [1,2], [[1,2,3],[4,5,6]], [{"text": "test", "chunk": "chunk", "knowledge_name": "knowledge"}, {"text": "test2", "chunk": "chunk2", "knowledge_name": "knowledge2"}] ) - vector_storge = VectorEmbeddingFactory.build_vector_storge('Qdrant', test_data) + vector_storge = VectorEmbeddingFactory.build_vector_storage('Qdrant', test_data) mock_qdrant.assert_called_once_with( [1,2], [[1,2,3],[4,5,6]], [{"text": "test", "chunk": "chunk", "knowledge_name": "knowledge"}, {"text": "test2", "chunk": "chunk2", "knowledge_name": "knowledge2"}]