Skip to content

Commit

Permalink
Add Contributing Guidelines to Docs Site
Browse files Browse the repository at this point in the history
  • Loading branch information
Ryan Holinshead committed Nov 16, 2023
1 parent fe53bd5 commit d7a323b
Show file tree
Hide file tree
Showing 2 changed files with 126 additions and 27 deletions.
65 changes: 38 additions & 27 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
# Contributing to AIConfig { }

👋 Welcome and thank you for your interest in contributing to AIConfig!
👋 Welcome and thank you for your interest in contributing to AIConfig!

---

### **Ways to Contribute**

1. **{ Code Contributions }**: We always welcome code contributions to the library. In particular, *model-parsers*, *extensions*, and *cookbooks* are areas that can always use contributions.
1. **{ Code Contributions }**: We always welcome code contributions to the library. In particular, _model-parsers_, _extensions_, and _cookbooks_ are areas that can always use contributions.

2. **{ Cookbooks }**: Showcase innovative ways and use cases to use AIConfig in your code through a cookbook.

3. **{ Bugs }**: File a bug report when you encounter issue and/or submit a fix for the bug.
3. **{ Bugs }**: File a bug report when you encounter an issue and/or submit a fix for the bug.

4. **{ Feature Requests }**: Submit feature or enhancements requests to help guide our roadmap.
4. **{ Feature Requests }**: Submit feature or enhancement requests to help guide our roadmap.

5. **{ Documentation }**: Contribute documentation to make it easier for others using through the library.
5. **{ Documentation }**: Contribute documentation to make it easier for others using the library.

---

### **1. Code Contributions**

```
Expand All @@ -29,56 +31,65 @@ aiconfig/
├─ extensions/
```

1. **{ Model Parsers }**: Model Parsers manage the conection to foundation models. By default, we provide the OpenAI models and Google PaLM models. The model parsers are defined in both `python` and `typescript`.

Instructions for contributing a Model Parser:
1. Add a folder under `aiconfig/extensions`
2. Define the requirements. For `python`, you'll need to set up `pyproject.toml`. For `typescript`, you'll need a `package.json`.
> **Naming convention for the extension**: *aiconfig-extension-NAME_OF_MODEL_PARSER*.
3. Extend from `ModelParser` class, and implement `serialize`, `deserialize` and `run` functions.
4. We highly recommend adding a cookbook under `aiconfig/cookbooks` for a guide on using your model parser.
5. Submit a PR for the lastmile team to review the extension and cookbook
6. Finally, publish your extension package on `pypi` and/or `npm`
1. **{ Model Parsers }**: Model Parsers manage the connection to foundation models. By default, we provide Model Parsers for OpenAI and Google PaLM models. The Model Parsers are defined in both `python` and `typescript`.

Instructions for contributing a Model Parser:

1. Add a folder under `aiconfig/extensions`
2. Define the requirements. For `python`, you'll need to set up `pyproject.toml`. For `typescript`, you'll need a `package.json`
> **Naming convention for the extension**: _aiconfig-extension-NAME_OF_MODEL_PARSER_
3. Extend from `ModelParser` class, and implement `serialize`, `deserialize` and `run` functions
4. We highly recommend adding a cookbook under `aiconfig/cookbooks` for a guide on using your Model Parser
5. Submit a PR for the lastmile team to review the extension and cookbook
6. Finally, publish your extension package on `pypi` and/or `npm`

2. **{ Extensions }**: Other than Model Parsers, there are opportunities to publish extensions that can connect `aiconfig` with other useful Generative AI libraries.

---

### **2. Cookbooks**

Create a small app to add to our cookbook to showcase your use case or innovative idea.
Create a small app to add to our cookbook to showcase your use case or innovative idea.

> **Important** - Each app in the cookbook must have a *README*. We want to ensure that developers can easily use the cookbook
> **Important** - Each app in the cookbook must have a _README_. We want to ensure that developers can easily use the cookbook.
Cookbook apps can be in typescript or python. And, you can decide on whether to showcase it through as a *console app*, *ipython notebook*, etc.
Cookbook apps can be in typescript or python. And, you can decide on whether to showcase it as a _console app_, _ipython notebook_, etc.

#### **Examples:**
- [Basic Prompt Routing](https://github.com/lastmile-ai/aiconfig/tree/main/cookbook/Basic-Prompt-Routing)
- [Chain of Verification](https://github.com/lastmile-ai/aiconfig/tree/main/cookbook/Chain-of-Verification)
- [Wizard GPT](https://github.com/lastmile-ai/aiconfig/tree/main/cookbook/Wizard-GPT)


- [Basic Prompt Routing](https://github.com/lastmile-ai/aiconfig/tree/main/cookbooks/Basic-Prompt-Routing)
- [Chain of Verification](https://github.com/lastmile-ai/aiconfig/tree/main/cookbooks/Chain-of-Verification)
- [Wizard GPT](https://github.com/lastmile-ai/aiconfig/tree/main/cookbooks/Wizard-GPT)

---

### **3. Bugs**

#### **Bug Fixing**
We track bugs in [Github issues](https://github.com/lastmile-ai/aiconfig/labels) with the `bug` label.

* If you're a first-time contributor, a good option is to find an issue tagged [`good first issue`](https://github.com/lastmile-ai/aiconfig/labels/good%20first%20issue)
* If you're looking to fix a few bugs (we greatly appreciate it), the issues are tagged with [`bug`](https://github.com/lastmile-ai/aiconfig/labels/bug)
We track bugs in [Github issues](https://github.com/lastmile-ai/aiconfig/labels) with the `bug` label.

- If you're a first-time contributor, a good option is to find an issue tagged [`good first issue`](https://github.com/lastmile-ai/aiconfig/labels/good%20first%20issue)
- If you're looking to fix a few bugs (we greatly appreciate it), the issues are tagged with [`bug`](https://github.com/lastmile-ai/aiconfig/labels/bug)

#### **Bug Reports**
File a bug report in [Github issues](https://github.com/lastmile-ai/aiconfig/labels) with the `bug` label. We try to triage the feature requests daily. Please include as much detail as possible in the request.

File a bug report in [Github issues](https://github.com/lastmile-ai/aiconfig/labels) with the `bug` label. We try to triage the feature requests daily. Please include as much detail as possible in the report.

---

### **4. Feature Requests**

We track feature requests in [Github issues](https://github.com/lastmile-ai/aiconfig/labels) with the `enhancement` label. We try to triage the feature requests daily. Please include as much detail as possible in the request.

---

### **5. Documentation**

We have our documentation source controlled in the [`aiconfig/aiconfig-docs`](https://github.com/lastmile-ai/aiconfig/tree/main/aiconfig-docs) directory. The docs are published to our [LastMile AI website](https://aiconfig.lastmileai.dev/docs/introduction/basics). Feel free to contribute documentation fixes and improvements and the lastmile team will review.
We have our documentation source controlled in the [`aiconfig/aiconfig-docs`](https://github.com/lastmile-ai/aiconfig/tree/main/aiconfig-docs) directory. The docs are published to our [LastMile AI website](https://aiconfig.lastmileai.dev/docs/basics). Feel free to contribute documentation fixes and improvements and the LastMile team will review.

---

## Development Guide

### Python
Expand Down
88 changes: 88 additions & 0 deletions aiconfig-docs/docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,91 @@ sidebar_position: 15
---

# Contributing Guidelines

👋 Welcome and thank you for your interest in contributing to AIConfig!

---

### **Ways to Contribute**

1. **Code Contributions**: We always welcome code contributions to the library. In particular, _model-parsers_, _extensions_, and _cookbooks_ are areas that can always use contributions.

2. **Cookbooks**: Showcase innovative ways and use cases to use AIConfig in your code through a cookbook.

3. **Bugs**: File a bug report when you encounter an issue and/or submit a fix for the bug.

4. **Feature Requests**: Submit feature or enhancement requests to help guide our roadmap.

5. **Documentation**: Contribute documentation to make it easier for others using the library.

---

### **1. Code Contributions**

```
aiconfig/
├─ cookbook/
├─ cli/
├─ editor/
├─ aiconfig-docs/
├─ python/
├─ typescript/
├─ extensions/
```

1. **Model Parsers**: Model Parsers manage the connection to foundation models. By default, we provide Model Parsers for OpenAI and Google PaLM models. The Model Parsers are defined in both `python` and `typescript`.

Instructions for contributing a Model Parser:

1. Add a folder under `aiconfig/extensions`
2. Define the requirements. For `python`, you'll need to set up `pyproject.toml`. For `typescript`, you'll need a `package.json`
> **Naming convention for the extension**: _aiconfig-extension-NAME_OF_MODEL_PARSER_
3. Extend from `ModelParser` class, and implement `serialize`, `deserialize` and `run` functions
4. We highly recommend adding a cookbook under `aiconfig/cookbooks` for a guide on using your Model Parser
5. Submit a PR for the lastmile team to review the extension and cookbook
6. Finally, publish your extension package on `pypi` and/or `npm`

2. **Extensions**: Other than Model Parsers, there are opportunities to publish extensions that can connect `aiconfig` with other useful Generative AI libraries.

---

### **2. Cookbooks**

Create a small app to add to our cookbook to showcase your use case or innovative idea.

> **Important** - Each app in the cookbook must have a _README_. We want to ensure that developers can easily use the cookbook.
Cookbook apps can be in typescript or python. And, you can decide on whether to showcase it as a _console app_, _ipython notebook_, etc.

#### **Examples:**

- [Basic Prompt Routing](https://github.com/lastmile-ai/aiconfig/tree/main/cookbooks/Basic-Prompt-Routing)
- [Chain of Verification](https://github.com/lastmile-ai/aiconfig/tree/main/cookbooks/Chain-of-Verification)
- [Wizard GPT](https://github.com/lastmile-ai/aiconfig/tree/main/cookbooks/Wizard-GPT)

---

### **3. Bugs**

#### **Bug Fixing**

We track bugs in [Github issues](https://github.com/lastmile-ai/aiconfig/labels) with the `bug` label.

- If you're a first-time contributor, a good option is to find an issue tagged [`good first issue`](https://github.com/lastmile-ai/aiconfig/labels/good%20first%20issue)
- If you're looking to fix a few bugs (we greatly appreciate it), the issues are tagged with [`bug`](https://github.com/lastmile-ai/aiconfig/labels/bug)

#### **Bug Reports**

File a bug report in [Github issues](https://github.com/lastmile-ai/aiconfig/labels) with the `bug` label. We try to triage the feature requests daily. Please include as much detail as possible in the report.

---

### **4. Feature Requests**

We track feature requests in [Github issues](https://github.com/lastmile-ai/aiconfig/labels) with the `enhancement` label. We try to triage the feature requests daily. Please include as much detail as possible in the request.

---

### **5. Documentation**

We have our documentation source controlled in the [`aiconfig/aiconfig-docs`](https://github.com/lastmile-ai/aiconfig/tree/main/aiconfig-docs) directory. The docs are published to our [LastMile AI AIConfig website](https://aiconfig.lastmileai.dev/docs/basics). Feel free to contribute documentation fixes and improvements and the LastMile team will review.

0 comments on commit d7a323b

Please sign in to comment.