Giter Club home page Giter Club logo

Comments (7)

thaalesalves avatar thaalesalves commented on September 23, 2024

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.

thaalesalves avatar thaalesalves commented on September 23, 2024

@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.

MagicShel avatar MagicShel commented on September 23, 2024

@thaalesalves

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.

thaalesalves avatar thaalesalves commented on September 23, 2024

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.

thaalesalves avatar thaalesalves commented on September 23, 2024

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.

MagicShel avatar MagicShel commented on September 23, 2024

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

Yes. I like ChannelConfig. BotConfig should be reserved to any Bot-wide settings.

from chatrpg-be.

thaalesalves avatar thaalesalves commented on September 23, 2024

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.
Channel config ERM

from chatrpg-be.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.