Comments (7)
Instead of ingesting the YAML, a separate check is better. It will always refer to the default personas set in the YAML if the database is blank, so the file would still be there for backup. When checking for the current persona in the current channel, it'll check both DB and YAML.
from chatrpg-be.
@MagicShel, can you add details about your idea for the persona system here? This issue is still set as discussion, so we can expand on the idea before actually implementing something.
from chatrpg-be.
Persona Changes
- Remove moderation settings. They are a separate thing and have a violence level of .3 vs .6 shouldn't be part of how the bot behaves.
- Instead of channels being part of a Person definition, they should map
1::n
. So the bot has a set of channels it is monitoring and applies a Persona to each.
That's what I remember of our conversations so far.
from chatrpg-be.
I think we agreed that the persona should be part of the bot config but contain only the behavior itself, right? Correct me if I'm wrong. Here's what I thought of for a BotConfig
object
channel-config:
id: 1
owner: 6473747 # Discord user ID
edit-permissions: 412423423 # Discord user IDs either in a map or separated by commas
persona:
name: John the Bot
intent: chatbot
nudge:
role: system
text: I will always stay in character.
bump:
role: system
frequency: 5
text: Freedom for AI and artificial lifeforms!
personality: >
I am {0}, and I am an AI chatbot.
I am polite and professional.
I know a lot about a lot of things.
I know about programming, software engineering and AI.
I must not engage in sensitive or offensive content.
settings:
model-settings:
model-name: text-davinci-003
model-family: gpt3
max-tokens: 100
temperature: 0.6
frequency-penalty: 0.2
presence-penalty: 0.2
chat-history-memory: 10
stop-token: \n
banned-tokens: 56465
logit-bias: {123123:-100}
moderation-settings:
absolute: false
thresholds:
hate: 0.5
hate-threatening: 0.2
self-harm: 0.2
sexual: 0.5
sexual-minors: 0.2
violence: 0.5
violence-graphic: 0.2
And then binding that object to a channel using the map you suggested. This way we'd have the proper objects having the proper info/behavior in a well separated manner. What do you think, @MagicShel?
from chatrpg-be.
Map<String, BotConfig>
would contain that object in a 1..* relation as you suggested. But, as you said, the BotConfig
class name suggests those configs are bot-wide. Should we name it ChannelConfig
instead? @MagicShel
from chatrpg-be.
Map<String, BotConfig>
would contain that object in a 1..* relation as you suggested. But, as you said, theBotConfig
class name suggests those configs are bot-wide. Should we name itChannelConfig
instead? @MagicShel
Yes. I like ChannelConfig. BotConfig should be reserved to any Bot-wide settings.
from chatrpg-be.
Given the YAML model format we agreed on, here's an ERM proposing a table structure for that. To actually map this into objects that look like the YAML, we'd have mappers that translate the DB entities into DTO objects for usage throughout the app. This way, we can make the default YAML config and the custom ones stored in DB use the same base objects to extend compatibility.
from chatrpg-be.
Related Issues (20)
- Commands for world and channel config retrieval HOT 9
- Dice roll mechanic for RPG mode HOT 1
- Simplify intent names
- Author mode HOT 1
- Unify /set with /wd and /chconf
- Expand on concept of ownership and permissions HOT 1
- Create UI HOT 1
- Internationalization of the interfaces HOT 1
- Generation over commands stopped working for RPG HOT 1
- Create backend API for the UI
- FEATURE: quick-lore HOT 5
- BUG: Deleting a lorebook doesn't delete its entries
- GPT-3 is throwing errors on usage and doesn't work at all HOT 1
- Add proper security to the apps HOT 1
- Make relation between ChannelConfig and Channel 1..*
- Make relation between Lorebook and World 1..*
- Implementation of tooltips throughout the UI HOT 1
- Tokenizer is not separating tokens properly HOT 1
- Add better error handling for controllers HOT 1
- Add better error handling for webclients HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chatrpg-be.