反應式AI,動手

2021-06-07 01:52:29 字數 2424 閱讀 2593

慣例,yy完趁頭腦尚熱就動手;

需求?文案?今天天氣不錯,早上有bug,中午有雨,下午還是有bug。

工具:python

模型:yy篇的ai模型

成品:通用庫,中介軟體模式

難點:1·神經元的構建,因為它將會模仿人體神經元,延伸到物件的各個細節末端,對於大多數構建模式來說,這是***個惡夢;

2·大腦到底怎麼處理這些訊號,也就是處理模式;

3·既然要做成中介軟體,那麼就不得依賴於具體專案或者專案具體,甚至要提供通用擴充套件,對於遊戲ai這種東西,同樣是個惡夢。

糾結成果:

1·python有個東西,叫裝飾器,可以讓神經和物件的結合變得輕鬆無節操,甚至可以讓神經元掌控到乙個具體物件屬性的變更,這會引起開發語言依賴,無視吧;

2·這一點見仁見智,不過從這套東西考慮,處理模式俺也是推薦靜態方式,俺一共實現了三套處理模式,按順序是 情緒、個性、習慣,具體下述;

3·解決辦法有兩個關鍵:基本庫不對控制物件做任何處理,只提供物件處理擴充套件;一切處理過程只使用配置訊號。

經過一段說長不長說短不短的時間的折騰,終於連庫連配置工具連測試一起吐出來了,配置工具用python tkinter,不為別的,就為即時不懂編碼的人使用時各種簡便;

資源請恕俺自珍,畢竟各人有各人的實現,僅放一些簡陋的偽**做參考:

大腦: class brain:

def input(self, func):

"""訊號輸入端用的裝飾器

"""def output(self, *o):

"""訊號輸出處理

"""def signal_setter(self, func):

"""輸入訊號設定裝飾器

"""def reflection_signal_setter(self, func):

"""輸出訊號設定裝飾器

"""處理過程:

處理過程根據俺個人的理解和劃分,分成了三部分:

1·情緒,主要處理複數輸入基於權重作出複數輸出的處理;

2·個性,主要基於狀態機、行為樹等,甚至是更簡單的反映模式的自定義指令碼處理,作為根據專案進行細節擴充套件的工具;

3·習慣,出入訊號一對一原始處理,簡單直接暴力。

經過這三部處理後,只要輸入輸出訊號安排得當,即時沒有個性處理或者個性處理只使用一些簡單的預設指令碼,也會為物件帶來豐富多彩的行動;

然後是意義不大純騙稿費的偽**:

class mood:

def run(self, entity, signals):

"""return reflect-signals

"""# 基於權重的處理過程

for weight, signal in self.moods:

do something

class character:

def run(self, entity, signals):

"""return reflect-signals

"""# 基於個性指令碼的處理

self.character_script(entity, signals)

class habit:

def run(self, entity, signals):

"""return reflect-signals

"""# 基於習慣列表的簡單處理

self.habit.get(signals)

最後,在上面的基礎上,俺塞進去了乙個巨大的加分項:學習能力。

在這個ai模式裡,俺給學習作出乙個定義:

在物件(obj)生命週期內,根據大腦(brain)天生(配置)的學習能力和學習機制,通過對於輸入訊號(signal)的處理的過程中的積累,物件的大腦(brain)可以增加自然界中存在(全體配置內存在)但其本身並不具備的反應訊號(reflection signal)。

這樣定義下來,其實就是個很簡單的東西而已:

class learn:

def _machine(self, signals):

"""學習機制

"""def add_refliction(self, rf_signal):

"""習得輸出訊號

"""def run(self, signals):

"""把習得的輸出訊號反映到訊號處理過程

"""

加入了這種學習模式,就造成了一種結果:起碼,預設上,所有的反應訊號,對於各種不同物件,都是可用的,節操掉一地了。

小結,它有什麼優缺點,有多強悍多孱弱:

·靜態ai,對cpu友好,更不需要執行緒支援,但是,如果輸入點太少,這ai就會極度懶散;

·在足夠的輸入輸出訊號支援下,靈活性高,可以說這貨在擴充套件和驚喜方面非常有料,但是,理解成本也高,於是不得不提供編輯器;

·對程式設計師來說,使用方便,但是,對無論是否程式設計師來說,要掌握好它,會比學會漂移難。

最後,神經型反應式ai(neuronalreaction

ai, nr)在 不帶 各種期待下誕生。

使用反應式spring webflux

org.springframework.bootgroupid spring boot starter webfluxartifactid dependency 下面新建乙個簡單的controller,乙個使用get,乙個使用post。該controller使用到了乙個簡單的值物件user,它裡面僅...

反應式系統設計宣言

在老大的指引下,去看了下反應式宣言,然後就毫不猶豫簽署了這個宣言,儘管宣言的最終版本定格在 2014 年,但仍然有很多技術人員在不斷地參與進來。那,究竟什麼是反應式宣言呢?是大家約定,用反應式方式去構建反應式系統的約定。反應式系統有如下特質 即時響應性 不論什麼響應都要快,正常響應要快,錯誤響應也要...

關係資料構建反應式的spring驅動程式

先說說什麼是響應式 響應式程式設計或反應式程式設計 英語 reactive programming 是一種面向資料流和變化傳播的程式設計正規化,直白的說就是 將變化的值通過資料流進行傳播。反應式架構文章 webflux定點推送 全推送靈活websocket運用 推 webflux前後端分離 資料響應...