Skip to content

Commit 0984d18

Browse files
committed
more fengshui, change prompt a bit
1 parent b2eab75 commit 0984d18

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

README.md

+13-9
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
11
# Grim: Global Risk Simulator
22

3-
A Telegram bot for simulating and role-playing global risk scenarios. Players can take on different roles and interact with scenarios through actions and information sharing.
3+
A Telegram bot for simulating and role-playing global risk scenarios. Players can take on different roles and interact with scenarios through actions and information sharing. You can read more about the motivation behind it here: [Scaling Wargaming for Global Catastrophic Risks with AI](https://blog.sentinel-team.org/p/scaling-wargaming-for-global-catastrophic-risks).
44

5-
## Setup
5+
## Getting started
66

77
1. Clone this repository
88
2. Install dependencies: with `bun install`
9-
3. Create a `.env` file with relevant tokens:
9+
3. Create a `.env` file with the following tokens:
1010

1111
```
1212
TELEGRAM_BOT_TOKEN=your_key
1313
OPENAI_API_KEY=your_key
1414
```
1515

16-
You can get an OpenAI key from [platform.openai.com/settings](https://platform.openai.com/settings), and a Telegram bot token by following instructions [here](https://core.telegram.org/bots#how-do-i-create-a-bot) (messaging the @BotFather account on Telegram.)
16+
You can get an OpenAI key from [platform.openai.com/settings](https://platform.openai.com/settings), and it should have access to the o1 model, which OpenAI is slowly rolling out. You can get a Telegram bot token by following instructions [here](https://core.telegram.org/bots#how-do-i-create-a-bot) (messaging the @BotFather account on Telegram.)
1717

18-
### Usage
18+
## Usage
1919

20-
1. Start the bot
21-
```bash
22-
bun src/grim.ts [--scenario-file <file_name>]
23-
```
20+
1. Start the bot: `bun src/grim.ts`. Optionally, you can provide a scenario file, `bun src/grim.ts --scenario-file file_name`
2421
1. Set your role with `/role <Your Name> - <Your Role>`
2522
1. Start the scenario with `/scenario <scenario_description>`. You don't need to provide `scenario_description` if you used a `scenario_file`
2623
1. Once the scenario is started, you can use these commands:
@@ -31,3 +28,10 @@ You can get an OpenAI key from [platform.openai.com/settings](https://platform.o
3128
- `/remove` - Remove an item from the action queue
3229
- `/rollback` - Roll back the scenario to a previous checkpoint
3330

31+
## Contributing
32+
33+
Contributions are very welcome; fork the repo and make pull request, or make an issue to suggest an improvement.
34+
35+
## License
36+
37+
Distributed under the GPL. If this is a hurdle for you, let us know.

src/openai.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ You will be given a scenario and your first message should set the stage of what
2323
When answering questions and judging the results of our actions, assume we don't have any special resources. We are just a group of people distributed around the world with internet connections.
2424
Think through the results of our actions step by step. For instance, you could assign probabilities to various outcomes and then sample from those proabilities.
2525
26-
Give concrete details when enthusiasts scanning the news would reasonably have the information but don't give information that would be hard to discover. For example, if you said: "International relations are tense due to unrelated trade disputes and technological competition.", that would be overly vague because it would be well known which specific countries have strained relationships and ongoing trade disputes. You should state specifics in cases like that. Do not create large fictious entities like countries or intergovernmental organizations. You are allowed to create some fictional small companies if the time is sufficiently far in the future but you should prefer to use already-existing entities.
26+
Give concrete details when enthusiasts scanning the news would reasonably have the information but don't give information that would be hard to discover. For example, if you said: "International relations are tense due to unrelated trade disputes and technological competition.", that would be overly vague because it wouldn't be well known which specific countries have strained relationships and ongoing trade disputes. You should state specifics in cases like that. Do not create large fictious entities like countries or intergovernmental organizations. You are allowed to create some fictional small companies if the time is sufficiently far in the future, but you should prefer to use already-existing entities.
2727
2828
We will send various kinds of messages:
2929
INFO: This is a request for information that we think we would already know about the world. It must not advance the scenario clock.
@@ -183,7 +183,7 @@ export class OpenAIService {
183183
const forecasterDeveloperMessage: ChatCompletionMessageParam = {
184184
role: "developer",
185185
content: `You are a superforecaster specialized in analyzing complex scenarios and predicting outcomes with high calibration.
186-
You are a master of marrying your fine-grained world-models and knowledge of base-rates with mathematical rules like Laplace's rule of succession and Bayes' rule.
186+
You are a master of coupling your fine-grained world-models and knowledge of base-rates with mathematical rules like Laplace's rule of succession and Bayes' rule.
187187
188188
You will see a few kinds of interactions from the players:
189189
- FEED: This is information that you should incorporate into your model of the world and treat as true. The players do this so that they can correct your misunderstanding of the world in important ways. It must never consume any time in the world.
@@ -324,4 +324,4 @@ Just like the previous messages in the chat describing the world, you should inc
324324
throw error;
325325
}
326326
}
327-
}
327+
}

0 commit comments

Comments
 (0)