Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
Memory
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Arcadia
Memory
Commits
9fc844ec
Commit
9fc844ec
authored
Oct 17, 2023
by
Mingju
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add APIS implemention
parent
2b655e4e
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
84 additions
and
16 deletions
+84
-16
chroma_apps.py
+83
-15
chroma_retrieve.py
+1
-1
No files found.
chroma_apps.py
View file @
9fc844ec
import
aiohttp
import
aiohttp
from
chroma_memory_stream
import
MemoryStream
from
chroma_memory_stream
import
MemoryStream
import
chroma_retrieve
api_file
=
'key.txt'
api_file
=
'key.txt'
...
@@ -9,6 +10,9 @@ def run_gpt_event_poignancy_prompt(api_key_f, record):
...
@@ -9,6 +10,9 @@ def run_gpt_event_poignancy_prompt(api_key_f, record):
def
run_gpt_chat_poignancy_prompt
(
api_key_f
,
chat_history
):
def
run_gpt_chat_poignancy_prompt
(
api_key_f
,
chat_history
):
raise
NotImplementedError
raise
NotImplementedError
def
run_gpt_skill_poignancy_prompt
(
api_key_f
,
skill_desc
):
raise
NotImplementedError
def
run_gpt_summary_event_prompt
(
api_key_f
,
record
):
def
run_gpt_summary_event_prompt
(
api_key_f
,
record
):
raise
NotImplementedError
raise
NotImplementedError
...
@@ -19,19 +23,32 @@ def parse_observations(observation:dict):
...
@@ -19,19 +23,32 @@ def parse_observations(observation:dict):
description
=
''
description
=
''
description
+=
f
"Name: {observation['name']}
\n
"
description
+=
f
"Name: {observation['name']}
\n
"
description
+=
f
"Entities: {observation['entities']}
\n
"
description
+=
f
"Entities: {observation['entities']}
\n
"
description
+=
f
"Health: {observation['health']} Food: {observation['food']}"
+
\
description
+=
f
"Health: {observation['health']} Food: {observation['food']}
"
+
\
f
"Saturation: {observation['saturation']} Oxygen: {observation['oxygen']}
\n
"
f
"Saturation: {observation['saturation']} Oxygen: {observation['oxygen']}
\n
"
description
+=
f
""
description
+=
f
"Position: {observation['position']} Velocity: {observation['velocity']} "
+
\
pass
f
"Yaw: {observation['yaw']} Pitch: {observation['pitch']} IsonGroud: {observation['groud']}
\n
"
description
+=
f
"TimeSinceOnGround: {observation['timeSinceOnGroud']}
\n
"
description
+=
f
"IsInwater: {observation['isInwater']} IsInLava: {observation['isInLava']}"
+
\
f
"IsInweb: {observation['isInWeb']} IsCollidedHorizontally: {observation['isCollidedHorizontally']} "
+
\
f
"IsCollidedVertically: {observation['isCollidedVertically']}
\n
"
description
+=
f
"TimeofDay: {observation['timeOfDay']}
\n
"
description
+=
f
"InventoryUsed: {observation['inventoryUsed']}
\n
"
return
description
class
MemoryAPIs
(
object
):
class
MemoryAPIs
(
object
):
def
__init__
(
self
,
db_file_name
,
collection_name
)
->
None
:
def
__init__
(
self
,
db_file_name
,
collection_name
):
self
.
memory_stream
=
MemoryStream
(
db_file_name
=
db_file_name
,
collection_name
=
collection_name
)
self
.
memory_stream
=
MemoryStream
(
db_file_name
=
db_file_name
,
collection_name
=
collection_name
)
async
def
receive_web_info
(
self
,
ip
,
port
):
async
def
receive_web_info
(
self
,
ip
,
port
):
pass
pass
def
add_chat_to_mem
(
self
,
chat_history
,
now_time
):
async
def
send_result
(
self
,
ip
,
port
,
res
):
pass
async
def
get_now_time
(
self
,
ip
,
port
):
pass
def
add_chat_to_mem
(
self
,
chat_history
,
summary
,
now_time
):
"""
"""
Add chat history to the memory.
Add chat history to the memory.
The *chat_history* should be formulated as below:
The *chat_history* should be formulated as below:
...
@@ -45,29 +62,80 @@ class MemoryAPIs(object):
...
@@ -45,29 +62,80 @@ class MemoryAPIs(object):
r_type
=
'chat'
r_type
=
'chat'
description
=
chat_history
description
=
chat_history
code
=
'NULL'
code
=
'NULL'
summary
=
run_gpt_summary_chat_prompt
(
api_key_f
=
api_file
,
chat_history
=
description
)
poignancy
=
run_gpt_chat_poignancy_prompt
(
api_key_f
=
api_file
,
chat_history
=
description
)
poignancy
=
run_gpt_chat_poignancy_prompt
(
api_key_f
=
api_file
,
chat_history
=
description
)
self
.
memory_stream
.
add_record_in_mem
(
r_type
,
description
,
code
,
self
.
memory_stream
.
add_record_in_mem
(
r_type
,
description
,
code
,
summary
,
now_time
,
poignancy
)
summary
,
now_time
,
poignancy
)
def
add_event_to_mem
(
observation
,
now_time
):
def
add_event_to_mem
(
self
,
description
,
summary
,
now_time
):
"""
"""
Add observation to the memory.
Add observation to the memory.
The *observation* is a python dict
The *observation* is a python dict
"""
"""
r_type
=
'event'
r_type
=
'event'
code
=
'NULL'
poignancy
=
run_gpt_event_poignancy_prompt
(
api_key_f
=
api_file
,
record
=
description
)
self
.
memory_stream
.
add_record_in_mem
(
r_type
,
description
,
code
,
summary
,
now_time
,
poignancy
)
pass
pass
def
add_skill_to_mem
(
skill_info
,
now_time
):
def
add_skill_to_mem
(
self
,
skill_info
,
now_time
):
pass
"""
Add skill to the memory.
The *sill_info* is a python dict, which has the field 'code' and 'description'
"""
r_type
=
'skill'
description
=
skill_info
[
'description'
]
code
=
skill_info
[
'code'
]
summary
=
'NULL'
poignancy
=
run_gpt_skill_poignancy_prompt
(
api_key_f
=
api_file
,
skill_desc
=
description
)
def
add_bug_info_to_mem
(
bug_info
,
now_time
):
self
.
memory_stream
.
add_record_in_mem
(
r_type
,
description
,
code
,
pass
summary
,
now_time
,
poignancy
)
def
delete_record_in_mem
():
def
add_bug_info_to_mem
(
self
,
bug_info
,
summary
,
now_time
):
"""
Add skill to the memory.
The *sill_info* is a python dict, which has the field 'code' and 'description'
"""
self
.
memory_stream
.
add_bug_report_in_mem
(
bug_info
,
summary
,
now_time
)
def
delete_record_in_mem
(
self
):
pass
pass
def
retrieve_mem
():
def
retrieve_mem
(
self
,
msg
):
raise
NotImplementedError
return
chroma_retrieve
.
retrieve
(
self
.
memory_stream
.
collection
,
[
msg
],
topK
=
10
)
\ No newline at end of file
def
circle
(
self
,
msg
,
r_type
):
"""
The main memory circle.
R_type can be: chat/event/skill/bug
"""
if
r_type
==
'chat'
:
desc
=
msg
summary
=
run_gpt_summary_chat_prompt
(
api_key_f
=
api_file
,
chat_history
=
desc
)
retrieved_msgs
=
self
.
retrieve_mem
(
summary
)
now_time
=
self
.
get_now_time
()
self
.
add_chat_to_mem
(
desc
,
summary
,
now_time
)
elif
r_type
==
'event'
:
desc
=
parse_observations
(
msg
)
summary
=
run_gpt_summary_event_prompt
(
api_key_f
=
api_file
,
record
=
desc
)
retrieved_msgs
=
self
.
retrieve_mem
(
summary
)
now_time
=
self
.
get_now_time
()
self
.
add_event_to_mem
(
desc
,
summary
,
now_time
)
elif
r_type
==
'skill'
:
desc
=
msg
[
'description'
]
retrieved_msgs
=
self
.
retrieve_mem
(
desc
)
now_time
=
self
.
get_now_time
()
self
.
add_skill_to_mem
(
msg
,
now_time
)
elif
r_type
==
'bug'
:
desc
=
msg
summary
=
run_gpt_summary_event_prompt
(
api_key_f
=
api_file
,
record
=
desc
)
now_time
=
self
.
get_now_time
(),
retrieved_msgs
=
None
self
.
add_bug_info_to_mem
(
msg
,
summary
,
now_time
)
else
:
raise
NotImplementedError
(
"Not supported node type."
)
return
retrieved_msgs
\ No newline at end of file
chroma_retrieve.py
View file @
9fc844ec
...
@@ -71,7 +71,7 @@ def get_res(records, idx):
...
@@ -71,7 +71,7 @@ def get_res(records, idx):
res
[
'summary'
]
=
records
[
'documents'
][
0
][
idx
]
res
[
'summary'
]
=
records
[
'documents'
][
0
][
idx
]
return
res
return
res
def
retrieve
(
collection
:
chromadb
.
Collection
,
msgs
:
list
[
str
],
topK
=
2
):
def
retrieve
(
collection
:
chromadb
.
Collection
,
msgs
:
list
[
str
],
topK
=
10
):
relevance
,
relevance_records
=
extract_relevance
(
collection
,
msgs
)
relevance
,
relevance_records
=
extract_relevance
(
collection
,
msgs
)
poignance
=
extract_poignance
(
relevance_records
)
poignance
=
extract_poignance
(
relevance_records
)
recency
=
extract_recency
(
relevance_records
)
recency
=
extract_recency
(
relevance_records
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment