|
1738 | 1738 | throw new Error(`HTTP ${res.status}`);
|
1739 | 1739 | if (options.stream) {
|
1740 | 1740 | for await (const chunk of parseEventStream(res.body)) {
|
1741 |
| - const probs = chunk.completion_probabilities?.[0]?.probs ?? []; |
| 1741 | + const choice = chunk.completion_probabilities?.[0]; |
| 1742 | + |
| 1743 | + let probs = []; |
| 1744 | + if (choice?.probs) { |
| 1745 | + probs = choice.probs ?? []; |
| 1746 | + } else if (choice?.top_logprobs) { |
| 1747 | + probs = Object.values(choice.top_logprobs).map(({ token, logprob }) => ({ |
| 1748 | + tok_str: token, |
| 1749 | + prob: Math.exp(logprob) |
| 1750 | + })); |
| 1751 | + } |
1742 | 1752 | const prob = probs.find(p => p.tok_str === chunk.content)?.prob;
|
| 1753 | + |
1743 | 1754 | yield {
|
1744 | 1755 | content: chunk.content,
|
1745 | 1756 | ...(probs.length > 0 ? {
|
1746 | 1757 | prob: prob ?? -1,
|
1747 |
| - completion_probabilities: chunk.completion_probabilities |
| 1758 | + completion_probabilities: [{ |
| 1759 | + content: chunk.content, |
| 1760 | + probs |
| 1761 | + }] |
1748 | 1762 | } : {})
|
1749 | 1763 | };
|
1750 | 1764 | }
|
1751 | 1765 | } else {
|
1752 | 1766 | const { completion_probabilities } = await res.json();
|
1753 | 1767 | for (const chunk of completion_probabilities) {
|
1754 |
| - const probs = chunk.probs ?? []; |
1755 |
| - const prob = probs.find(p => p.tok_str === chunk.content)?.prob; |
| 1768 | + const token = chunk.content ? chunk.content : chunk.token; |
| 1769 | + |
| 1770 | + let probs = []; |
| 1771 | + if (chunk.probs) { |
| 1772 | + probs = chunk.probs ?? []; |
| 1773 | + } else if (chunk.top_logprobs) { |
| 1774 | + probs = Object.values(chunk.top_logprobs).map(({ token, logprob }) => ({ |
| 1775 | + tok_str: token, |
| 1776 | + prob: Math.exp(logprob) |
| 1777 | + })); |
| 1778 | + } |
| 1779 | + const prob = probs.find(p => p.tok_str === token)?.prob; |
| 1780 | + |
1756 | 1781 | yield {
|
1757 |
| - content: chunk.content, |
| 1782 | + content: token, |
1758 | 1783 | ...(probs.length > 0 ? {
|
1759 | 1784 | prob: prob ?? -1,
|
1760 |
| - completion_probabilities: [chunk] |
| 1785 | + completion_probabilities: [{ |
| 1786 | + content: token, |
| 1787 | + probs |
| 1788 | + }] |
1761 | 1789 | } : {})
|
1762 | 1790 | };
|
1763 | 1791 | }
|
|
0 commit comments